Autor Zpráva
amorekj
Profil
Dobrý den,
mám tu problém s výpisem z databáze. Nepíše to nikde žádnou chybu. Problém je v tom, že tam kde mám jeden příspěvek na vypsání, nevypíše nic a tam, kde mám 2 příspěvky, vypíše se pouze ten druhý.

Děkuji za Vaše rady a posílám kód v oblasti, kde to dělá zmíněné chyby.

<?php
error_reporting(E_all);
require "db.php"; 
$vysledek = mysql_query ("SELECT * FROM `forum` JOIN `reg` ON `reg`.`id` = `forum`.`id-clena` WHERE `predmet-adresa` = '". mysql_real_escape_string($_GET['str']) ."' ORDER BY `forum`.`id`") ;
if(!$vysledek): echo mysql_error(); endif;
$zaznam = mysql_fetch_array($vysledek );                                                                                                                                          

if ($_GET['str'] == $zaznam['predmet-adresa']){      
    if ($zaznam['pro-vedeni'] == 1){
        if(isset($_SESSION['pozice']) and $_SESSION['pozice'] == 1){ ?>
<h1>Téma: <?php echo $zaznam['predmet']; ?> (pro členy výboru)</h1>
<table>
<?php while ($zaznam = mysql_fetch_array($vysledek )){ ?>
    <tr><th><a href="/clen/<? echo $zaznam['id-clena']; ?>" title="<? echo $zaznam['jmeno']; ?> <? echo $zaznam['prijmeni']; ?>"><? echo $zaznam['jmeno']; ?> <? echo $zaznam['prijmeni']; ?></a></th><th><? echo $zaznam['cas-odeslani']; ?></th></tr>
    <tr><td colspan="2"><? echo $zaznam['zprava']; ?></td></tr>
<?php } ?>
</table>                      
   <?php } else { ?> 
<h1>Téma není dostupné</h1>
<p>Vyberte si prosím jiné téma, na které chcete reagovat.</p>
<p>Toto téma je <strong>pouze pro členy výboru</strong>.</p>         
   <?php }} else { ?>   
<h1>Téma: <?php echo $zaznam['predmet']; ?></h1>
<table>
<?php while ($zaznam = mysql_fetch_array($vysledek )){ ?>
    <tr><th><a href="/clen/<? echo $zaznam['id-clena']; ?>" title="<? echo $zaznam['jmeno']; ?> <? echo $zaznam['prijmeni']; ?>"><? echo $zaznam['jmeno']; ?> <? echo $zaznam['prijmeni']; ?></a></th><th><? echo $zaznam['cas-odeslani']; ?></th></tr>
    <tr><td colspan="2"><? echo $zaznam['zprava']; ?></td></tr>
<?php } ?>    
</table>  
  
<?php }} else {  ?>
<h1>Téma neexistuje</h1>
<p>Zadejte prosím <strong>platnou adresu</strong> Vašeho zvoleného tématu.</p>
<p>Děkujeme</p>
<table>
    <tr><th>Jméno Příjmení</th><th>Čas odeslání</th></tr>
    <tr><td colspan="2">Zpráva</td></tr>
</table>
<?php } ?>
panther
Profil
amorekj:
máš chybu na 6. řádku, kde si vezmeš pouze jeden řádek. Musíš ten výpis dát do cyklu, třeba while.

Možná máš chybu i jinde, ale ten tvůj zápis je strašně nepřehledný, probírat se jím nechci.
amorekj
Profil
to mám dál, ten while ;) ono to vadí, když předtím mám to na 6. řádku? příp. čemu? Pokud se ti zápis nelíbí tak si ho zkus přepsat někam a dej do svého stylu. Každý to píše jinak a líp se ti bude zkoumat chyby "ve svém". Jinak moc dík ;)
panther
Profil
amorekj:
Pokud se ti zápis nelíbí tak si ho zkus přepsat někam a dej do svého stylu.
přepisovat nic nebudu, na to nemám čas.

Kde máš chybu hledat, jsem ti řekl.
amorekj
Profil
Ale nevím, jak to spravit. Zkoušel jsem tedy dát před to while, ale není rozdíl.. :(
Tori
Profil
První volání mysql_fetch_array na ř.6 vrátí pole dat a posune ukazatel na další řádek výsledků. Proto všechna další volání mysql_fetch_* v cyklu čtou data až od druhého řádku. Jestli hledáte jen rychlou záplatu, tak lze použít po ř.6 mysql_data_seek.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: