[PHP4] Buchstaben Menü nicht so wie ich es will...

tschinkes

Mitglied
Hallo hab ein Problem, mit meinem Buchtaben Menü. Wenn ich auf einen Buchstabe klicke, der auch einen Datenbankeintrag findet, bekomme ich eine Zeile vorab, leer angezeigt!
Ich weiß nicht woran das liegt, hier mal mein Code:

PHP:
<?php
$anfangsb=$_GET['anfangsb'];
$abf="SELECT * FROM mr WHERE typ_id = '".$_GET['typ_id']."' AND Name like '".mysql_escape_string($anfangsb)."%' ORDER BY Name ASC";
$abfrage = mysql_query($abf, $local) or die(mysql_error());
$row_zahl = mysql_num_rows($abfrage);
$type = $_GET['typ_id'];
for ($i=65;$i<91;$i++) { 
    $b=chr($i);
	if ($i == ord($anfangsb)) {
	echo "<b> &raquo;".$b."&laquo; </b>"; }
	else {
	echo "<a href=\"verzeichnis.php?typ_id=".$type."&anfangsb=".$b."\">".$b."</a> "; };
} 
?>
</p>
<p>&nbsp;</p>
<?php
if ($row_zahl > NULL) {

do {
?>
<table width="100%"  border="0" cellpadding="0" cellspacing="0" align="center">
    <tr valign="middle" bgcolor="#203C5E">
        <td height="25" colspan="3"><div align="right"><em>Kategorie <?php echo rawurldecode($row_abfrage['typ']); ?></em></div></td>
      </tr>
    <tr bgcolor="#99FF33">
        <td height="25" colspan="2" bgcolor="#CBD7E6"><div align="right">
          <table width="100%"  border="0" cellpadding="0" cellspacing="0" bordercolor="#203C5E">
            <tr>
              <td width="18" height="28" bgcolor="#7C8FD3" weidth="18"></td>
              <td><div align="center">
                <table width="100%" height="31"  border="1" cellpadding="0" cellspacing="0" bordercolor="#203C5E">
                  <tr>
                    <td><div align="center"><span class="Stil1"><?php echo $row_abfrage['titel']; ?></span></div></td>
                  </tr>
                </table>
              </div></td>
            </tr>
          </table>
        </div></td>
        <td width="18" bgcolor="#7C8FD3">&nbsp;</td>
    </tr>
    <tr>
        <td width="159" rowspan="2" align="center" valign="middle" bgcolor="#7C8FD3"><div align="center"><?php if (isset($row_abfrage['bildurl'])) {?><a href="<?php echo $row_abfrage['bildurl']; ?>" target="_blank" onClick="MM_openBrWindow('pic.php?id=<?php echo $row_abfrage['id']; ?>','','')"><img src="<?php echo $row_abfrage['bildurl']; ?>" width="150" height="100" border="0" align="middle"></a><? } else { echo "Kein Bild vorhanden!"; } ?></div></td>
        <td width="314" rowspan="2" bgcolor="#FFFFFF"><div align="center">
          </div>          <div align="center">
            <p class="Stil2"><em><?php echo $row_abfrage['titel']; ?></em></p>
            <p class="Stil2"><?php echo $row_abfrage['Name']; ?><br>
                <?php echo $row_abfrage['strasse']; ?><br>
                <?php echo $row_abfrage['PLZ']; ?> <?php echo $row_abfrage['Ort']; ?> </p>
            <p class="Stil2"><strong>&nbsp;<?php echo $row_abfrage['telefon']; ?></strong></p>
          </div></td>
        <td width="18" height="104" bgcolor="#7C8FD3">&nbsp;</td>
    </tr>
    <tr>
        <td width="18" height="40" bgcolor="#7C8FD3">&nbsp;</td>
    </tr>
    <tr>
        <td height="2" width="159" bgcolor="#7C8FD3"></td>
        <td height="2" width="314" bgcolor="#000000"></td>
        <td height="2" width="18" bgcolor="#7C8FD3"></td>
    </tr>
    <tr>
        <td height="50" bgcolor="#7C8FD3">&nbsp;</td>
        <td bgcolor="#FFFFFF"><div align="left">
          <table width="100%" height="100%"  border="0" cellpadding="5" cellspacing="0">
            <tr>
              <td><span class="Stil2"><?php echo nl2br($row_abfrage['info']); ?></span></td>
            </tr>
          </table>
        </div></td>
        <td width="18" bgcolor="#7C8FD3">&nbsp;</td>
    </tr>
    <tr>
        <td width="159" bgcolor="#7C8FD3"></td>
        <td width="314" bgcolor="#99FF33"></td>
        <td width="18" bgcolor="#7C8FD3"></td>
    </tr>
    <tr>
        <td height="28" bgcolor="#7C8FD3">&nbsp;</td>
        <td bgcolor="#FFFFFF"><div align="center"><a href="<?php echo $row_abfrage['link']; ?>"><strong><?php echo $row_abfrage['titel']; ?> Homepage</strong></a></div></td>
        <td width="18" bgcolor="#7C8FD3">&nbsp;</td>
    </tr>
    <tr>
        <td bgcolor="#203C5E">&nbsp;</td>
        <td bgcolor="#203C5E">&nbsp;</td>
        <td bgcolor="#203C5E">&nbsp;</td>
    </tr>
</table>
<br>
<?php } while ($row_abfrage = mysql_fetch_assoc($abfrage));

} else { echo "Kein Eintrag unter dem Anfangsbuchstaben '<b>$anfangsb</b>' vorhanden!"; };
?>
 
Hallo!

Mach statt des
PHP:
do { ... } while ($row_abfrage = mysql_fetch_assoc($abfrage));
ein
PHP:
while ($row_abfrage = mysql_fetch_assoc($abfrage)) {...}

So, wie du es hast, wird zuerst eine Reihe geschrieben und dann werden erst die Daten aus der MySQL-Abfrage geholt...

Mamphil
 
Mache mal statt
PHP:
if ($row_zahl > NULL) {

do { 

//... der Rest, der dazwischen steht

} while ($row_abfrage = mysql_fetch_assoc($abfrage));

} else { echo "Kein Eintrag unter dem Anfangsbuchstaben '<b>$anfangsb</b>' vorhanden!"; };
besser:
PHP:
while ($row_abfrage = mysql_fetch_assoc($abfrage)) {

//... der Rest, der dazwischen steht

}
if ($row_zahl==0) {
    echo "Kein Eintrag unter dem Anfangsbuchstaben '<b>$anfangsb</b>' vorhanden!";
}

Gruß hpvw
 
Zurück