NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: PHP diskuze s reakcemi

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
mr.sammet
Člen
Avatar
mr.sammet:10.3.2016 19:10

Zdravím, mohli byste mi prosím někdo pomoct s problémem, který řeším snad celý den? Tvořím v PHP diskuzi s reakcemi spojenou s databází a mám problém s vypsáním reakcí. Pokaždé mi to vypíše pouze první příspěvek s reakcemi, ale další už ne. Děkuji

Kód:

<?php $sql = "SELECT ID_diskuze, autor_diskuze, predmet_diskuze, text_diskuze, datum_cas_diskuze
                     FROM diskuze";
              $result = mysql_query($sql);

           while ($row = mysql_fetch_array($result)){

           $ID_diskuze = $row['ID_diskuze'];
           $autor_diskuze = $row['autor_diskuze'];
           $predmet_diskuze = $row['predmet_diskuze'];
           $text_diskuze = $row['text_diskuze'];
           $datum_cas_diskuze = $row['datum_cas_diskuze']; ?>

          <p>
          <span style="color:rgb(204,0,0); font-weight:bold; font-size: 20px">OD: <?php echo $autor_diskuze ?></span>
          <span style="color:rgb(0,0,0); font-size: 16px"> (<?php echo $datum_cas_diskuze ?>)</span><br />
          <span style="color:rgb(0,0,204); font-weight:bold; font-size: 16px">TITULEK: <?php echo $predmet_diskuze ?></span><br />
          <span style="font-weight:bold;">NAPSAL: </span><?php echo $text_diskuze ?>
          </p>

          <?php $sql = "SELECT ID_diskuze, hloubka_odpovedi, autor_odpovedi, text_odpovedi, datum_cas_odpovedi
                        FROM odpovedi
                        WHERE ID_diskuze = $ID_diskuze
                        ORDER BY hloubka_odpovedi ASC";
              $result = mysql_query($sql);

           while ($row = mysql_fetch_array($result)){

           $ID_diskuze = $row['ID_diskuze'];
           $hloubka_odpovedi = $row['hloubka_odpovedi'];
           $autor_odpovedi = $row['autor_odpovedi'];
           $text_odpovedi = $row['text_odpovedi'];
           $datum_cas_odpovedi = $row['datum_cas_odpovedi'];

           $reakce = $autor_odpovedi." - ".$datum_cas_odpovedi." - ".$text_odpovedi;

           ?>

           <p>
           <span style="color:rgb(0,204,0); font-weight:bold; font-size: 16px">REAKCE: <?php echo $reakce ?></span><br />
           </p>

      <?php }

          if((isset ($_SESSION['login_admin']) == true) and (isset ($_SESSION['pass_admin']) == true)) { ?>

          <form class="form-reakce" method="POST" action="diskuze.php">
          <input type="submit" name="<?php echo $ID_diskuze ?>" value="REAGOVAT">
          </form>

          <?php }

          if(isset($_POST[$ID_diskuze])){ ?>

          <form class="form-reakce" method="POST" action="diskuzereakce.php">
          <textarea name="reakce_diskuze" cols="100%" rows="4" ></textarea>
          <input type="submit" name="<?php echo $ID_diskuze ?>" value="Odeslat reakci">
          </form>

          <?php



          } }


          ?>
Editováno 10.3.2016 19:13
 
Odpovědět
10.3.2016 19:10
Avatar
Odpovídá na mr.sammet
Uživatel sítě :10.3.2016 19:45

U druhého cyklu přepiš $result na $result2 například.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
10.3.2016 19:45
Chybami se člověk učí, běžte se učit jinam!
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Uživatel sítě
mr.sammet:10.3.2016 19:48

nemám slov prostě, jaká jsem lopata :-D ... děkuji mockrát!!! :-)

Editováno 10.3.2016 19:49
 
Nahoru Odpovědět
10.3.2016 19:48
Avatar
Martin Štěpánek :10.3.2016 21:15

jen doporučuji ty data od uživatele ošetřovat funkcí htmlspecialchars() ;-)

Nahoru Odpovědět
10.3.2016 21:15
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Martin Štěpánek
mr.sammet:15.3.2016 16:16

jop SQL Injection jsem vyřešil hned poté, děkuji :-)

 
Nahoru Odpovědět
15.3.2016 16:16
Avatar
Nahoru Odpovědět
15.3.2016 16:29
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
shaman
Člen
Avatar
Odpovídá na mr.sammet
shaman:15.3.2016 16:37

htmlspecialchars nie je osetrenie voci sql injection, aj ked na prvy pohlad ta moze ukludnit. Tiez tie mysql_ prikazy su uz niekolko rokov neodporucane pouzivat a v PHP7 uplne odstranene. Prepis ich aspon na mysqli alebo PDO.

Nahoru Odpovědět
15.3.2016 16:37
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.