Avatar
mr.sammet
Člen
Avatar
mr.sammet:

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. března 19:13
 
Odpovědět 10. března 19:10
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na mr.sammet
Marek Z.:

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

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 10. března 19:45
Chybami se člověk učí, běžte se učit jinam!
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Marek Z.
mr.sammet:

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

Editováno 10. března 19:49
 
Nahoru Odpovědět  +1 10. března 19:48
Avatar
Martin Štěpánek (Enormyk):

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

Nahoru Odpovědět 10. března 21:15
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Martin Štěpánek (Enormyk)
mr.sammet:

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

 
Nahoru Odpovědět 15. března 16:16
Avatar
shaman
Člen
Avatar
Odpovídá na mr.sammet
shaman:

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  +2 15. března 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.