[PHP] Skript durchläuft schleife trotz anweisung

mbassus

Well-known member
ID: 104267
L
23 April 2006
5.071
449
Fragt mich mal.. ewig dran geschrieben.. hat einiges nich getan.. aber .. naja..

Also der Zeigt die "Kategorie $kat[$q]" trotz anweisung, das er sie nich anzeigen soll, wenn $pnnum <1 is.. quasi 0.. hab auch schon ausgegebn.. is definitiv immer 0... er zeigts trotzdem.

Kann mir wer helfen?

PHP:
for ($q=3;$q<10;$q++)
                            {
                                      $pn="SELECT id,strasse,ort,vermietet FROM $tab[$q] WHERE user='$user_benutzername' && orig = '0'";
            $pnok=mysql_query($pn,$Verbindung)
or die ("$tab[$q]");

            $pnnum=mysql_num_rows($pnok);
            if ($pnnum>0)
            {
                    echo" <tr height=3px><td colspan=6> </td><tr><td colspan=6 bgcolor=#F8B21B><b>Kategorie $kat[$q]</b></td></tr><tr bgcolor=#FFD055><td colspan=2>Straße und Hausnummer</td><td>Ort</td><td> </td><td>Übertragen</td><td>Un/Vermietet stellen</td></tr>";
                         }
            
        for ($t=1;$t<=$pnnum;$t++)
            {
                    $uv=$tab[$q];
                    $pna=mysql_fetch_array($pnok);
                            
                            $uv.="-".$pna[0];
$anfrage="select * from $tab[$q] where orig = '$pna[0]'";
$erfolg=mysql_query($anfrage);
$anz=mysql_num_rows($erfolg);
unset($check);
if($anz <1)
{
$check="Checked";
}
                            echo"
                            <tr bgcolor=#F0C479><td>$pna[1]</td><td> </td><td> $pna[2]</td><td></td><td><input type=checkbox name=cb[] value='$uv' $check></td>";


if(isset ($pna[4]))
{
if($pna[4] =="1")
{

echo "<a href=vermietet.php4?x=1&id=$pna[0]&db=$tab[$q]>Unvermietet stellen</a>";
}
elseif($pna[4] =="0")
{
echo "<a href=vermietet.php4?id=$pna[0]&db=$tab[$q]>Vermietet stellen</a>";
}
}
else
{
echo "<a href=vermietet.php4?x=1&id=$pna[0]&db=$tab[$q]>Unvermietet stellen</a>";
}
echo "</td></tr>
                            ";
                            unset ($uv);
                            
                    }        
                                    }
 
So mal den Code vernüftig formatiert....
PHP:
for ($q=3;$q<10;$q++)
{
    $pn="SELECT id,strasse,ort,vermietet FROM ".$tab[$q]." WHERE user='".$user_benutzername."' AND orig = '0'";
    $pnok=mysql_query($pn,$Verbindung)or die ($tab[$q]);
    $pnnum=mysql_num_rows($pnok);
    if ($pnnum>0)
    {
        echo "
        <tr height=\"3px\">
         <td colspan=\"6\"> </td>
        </tr>
        <tr>
         <td colspan=\"6\" bgcolor=\"#F8B21B\">
          <b>Kategorie ".$kat[$q]."</b>
         </td>
        </tr>
        <tr bgcolor=\"#FFD055\">
         <td colspan=\"2\">Straße und Hausnummer</td>
         <td>Ort</td>
         <td> </td>
         <td>Übertragen</td>
         <td>Un/Vermietet stellen</td>
        </tr>";
        for ($t=1;$t<=$pnnum;$t++)
        {
            $uv=$tab[$q];
            $pna=mysql_fetch_array($pnok);
            $uv.="-".$pna[0];
            $anfrage="select * from ".$tab[$q]." where orig = '".$pna[0]."'";
            $erfolg=mysql_query($anfrage);
            $anz=mysql_num_rows($erfolg);
            unset($check);
            if($anz <1)
            {
                $check="Checked";
            }
            echo "
            <tr bgcolor=\"#F0C479\">
             <td>".$pna[1]."</td>
             <td> </td>
             <td>".$pna[2]."</td>
             <td></td>
             <td>
              <input type=\"checkbox\" name=\"cb[]\" value=\"".$uv."\" ".$check."></td>";
            if(isset ($pna[4]))
            {
                if($pna[4] =="1")
                {
                    echo "<a href=\"vermietet.php4?x=1&id=".$pna[0]."&db=".$tab[$q]."\">Unvermietet stellen</a>";
                }
                elseif($pna[4] =="0")
                {
                    echo "<a href=\"vermietet.php4?id=".$pna[0]."&db=".$tab[$q]."\">Vermietet stellen</a>";
                }
            }
            else
            {
                echo "<a href=\"vermietet.php4?x=1&id=".$pna[0]."&db=".$tab[$q]."\">Unvermietet stellen</a>";
            }
            echo "</td></tr>";
            unset ($uv);
        }        
}
lass dir doch mal dein $pnnum ausgeben
 
So mal den Code vernüftig formatiert....
PHP:
for ($q=3;$q<10;$q++)
{
    $pn="SELECT id,strasse,ort,vermietet FROM ".$tab[$q]." WHERE user='".$user_benutzername."' AND orig = '0'";
    $pnok=mysql_query($pn,$Verbindung)or die ($tab[$q]);
    $pnnum=mysql_num_rows($pnok);
    if ($pnnum>0)
    {
        echo "
        <tr height=\"3px\">
         <td colspan=\"6\"> </td>
        </tr>
        <tr>
         <td colspan=\"6\" bgcolor=\"#F8B21B\">
          <b>Kategorie ".$kat[$q]."</b>
         </td>
        </tr>
        <tr bgcolor=\"#FFD055\">
         <td colspan=\"2\">Straße und Hausnummer</td>
         <td>Ort</td>
         <td> </td>
         <td>Übertragen</td>
         <td>Un/Vermietet stellen</td>
        </tr>";
        for ($t=1;$t<=$pnnum;$t++)
        {
            $uv=$tab[$q];
            $pna=mysql_fetch_array($pnok);
            $uv.="-".$pna[0];
            $anfrage="select * from ".$tab[$q]." where orig = '".$pna[0]."'";
            $erfolg=mysql_query($anfrage);
            $anz=mysql_num_rows($erfolg);
            unset($check);
            if($anz <1)
            {
                $check="Checked";
            }
            echo "
            <tr bgcolor=\"#F0C479\">
             <td>".$pna[1]."</td>
             <td> </td>
             <td>".$pna[2]."</td>
             <td></td>
             <td>
              <input type=\"checkbox\" name=\"cb[]\" value=\"".$uv."\" ".$check."></td>";
            if(isset ($pna[4]))
            {
                if($pna[4] =="1")
                {
                    echo "<a href=\"vermietet.php4?x=1&id=".$pna[0]."&db=".$tab[$q]."\">Unvermietet stellen</a>";
                }
                elseif($pna[4] =="0")
                {
                    echo "<a href=\"vermietet.php4?id=".$pna[0]."&db=".$tab[$q]."\">Vermietet stellen</a>";
                }
            }
            else
            {
                echo "<a href=\"vermietet.php4?x=1&id=".$pna[0]."&db=".$tab[$q]."\">Unvermietet stellen</a>";
            }
            echo "</td></tr>";
            unset ($uv);
        }        
}
lass dir doch mal dein $pnnum ausgeben
Danke, das lag bei der übergabe vom editor irgendwie dran.. ging irgendwas schief.. ^^

$pnnum is wie bereits oben geschrieben tatsächlich immer 0 ;)
 
Done.. das is geil.. ich hab bissl rumgemehrt.. weiß aber nu nich was ich verändert hab.. -.- zumindest gehts.. ^^
 
mal davon abgesehn das die zweite Schleift endlos wird wenn wirklich eine 0 durchgekommen wäre....
 
Und dabei den if-Block erst später geschlossen, was zur Lösung des Problems geführt haben dürfte... ;)
Was mich zu der Vermutung bringt das da jemand einfach mein schön formatierten Code übernommen hat:mrgreen:, aber es stimmt irgendwie ist mit da die geschweifte Klammer abhanden gekommen^^ War bestimmt auch so ein Fehler mit dem kopieren...:ugly: