[MySql]Auslese Problem

djjlx

---???---
ID: 62937
L
9 Mai 2006
599
21
Hy!

Ich hab ein Problem mit dem auslesen der Eintrage in der DB!

Mein Code
PHP:
$res1 = mysql_query("select * from support where nick like '$nick'");
$altesupport = @mysql_result($res1,0,"support");

if ($res1==true) {

$res1 = mysql_query("select * from support where nick like '$nick'");
$altesupport = mysql_result($res1,0,"support");
while ($data = mysql_fetch_array($res1)) 
{ 
    
    $suppid = $data["id"]; 
    $suppanfrage = $data["support"]; 
    $suppstatus = $data["status"]; 
    $suppantwort = $data["antwort"]; 

else {echo "Derzeit sind keine Supportanfragen vorhanden";}

So eigentlich funktioniert das aber nur wenn die Supportanfrage 2 mal in der DB steht. bzw wenn der user 2 fragen stellt erscheit nur die 2 Frage. Allerdings wenn er 5 stellt erscheinen 4 nur die erste nicht!

LG
 
Ganz einfach, in Zeile 1+2 liest du den ersten Datensatz aus, in Zeile 6+7 den nächsten, somit ist Datensatz 1 wieder wech.
Besser wäre das hier:
PHP:
$res1 = mysql_query("select * from support where nick like ".$nick."");
$altesupport = mysql_result($res1,0,"support");
while ($data = mysql_fetch_array($res1)) 
{ 
    
    $suppid = $data["id"]; 
    $suppanfrage = $data["support"]; 
    $suppstatus = $data["status"]; 
    $suppantwort = $data["antwort"]; 
}
Damit erscheinen dann alle Supportanfragen.
Den schlechten Stil lassen wir heute mal weg, eh?
 
Ja aber wie kann ich dann festlegen das wenn keine Supportanfragen da sind das dann dort steht das keine da sind? Ich weiß mein Stil ist sch.... (Newbie)!

LG
 
Ich versuchs mal aus dem Kopf, ohne den Code zu testen:
PHP:
$res1 = mysql_query("select * from support where nick like ".$nick."");
$altesupport = mysql_result($res1,0,"support");
if (mysql_num_rows($res1)>0) // Ist eine Anfrage vorhanden?
{
    while ($data = mysql_fetch_array($res1))  // Wenn ja, Anfragen auslesen
    { 
        $suppid = $data["id"]; 
        $suppanfrage = $data["support"]; 
        $suppstatus = $data["status"]; 
        $suppantwort = $data["antwort"]; 
    }  
}
else // Wenn keine Anfrage vorhanden, Text ausgeben...
{
    echo "Derzeit sind keine Supportanfragen vorhanden";
}
 
Also der Code funktioniert nur teilweise! Aber im ganzen das selbe nur in grün!

Wenn 1 Anfrage des User da ist kommt:

Notice: Undefined variable: suppid in /var/ww usw.

Wenn 2 oder Mehr Anfragen des selben Users da sind wird immer nur die letzte (neueste) angezeigt. [das was jetzt neu ist]

LG
 
Das hab ich schon das sind die meldungen die über bleiben!

Also genau

Notice: Undefined variable: suppid in /var/www/ on line 210

Notice: Undefined variable: suppanfrage in /var/www/ on line 211

Notice: Undefined variable: suppstatus in /var/www/ on line 212

Notice: Undefined variable: suppantwort in /var/www/ on line 219


Denke das die meldung kommt weil er die erste Supportanfrage irgenwie nicht ausliest und die rügabe leer ist!

Wenn gar keine vorhanden ist dann passt und er schreibt die else anweisung!

LG
 
Zuletzt bearbeitet:
Müsste ich das ganze Script zu sehen, ich weiß ja nicht, wo Zeile 210-2xx ist und was davor und dahinter steht.
 
Hey Danke jetzt funktionierts!

Die Lösung

PHP:
<p>Ihre Supportanfragen:</p>"; 
$res1 = mysql_query("select * from support where nick like '$nick'");  
// $altesupport = @mysql_result($res1,0,"support");  
if (mysql_num_rows($res1)>0) // Ist eine Anfrage vorhanden?  
{  
    echo "<table width='100%'  border='0' cellpadding='0' cellspacing='0'>"; 

    while ($data = mysql_fetch_array($res1))  // Wenn ja, Anfragen auslesen  
    {   

echo "  <tr> 
    <td width='3%'><strong>ID</strong></td> 
    <td width='61%'><strong>Anfrage</strong></td> 
    <td width='36%'><strong>Status</strong></td> 
  </tr>  <tr> 
    <td>".$data["id"]."</td> 
    <td>".$data["support"]."</td> 
    <td>".$data["status"]."</td> 
  </tr>  <tr> 
    <td> </td> 
    <td><strong>Antwort:</strong></td> 
    <td> </td> 
  </tr>  <tr> 
    <td> </td> 
    <td>".$data["antwort"]."</td> 
    <td> </td> 
  </tr>"; 

    }    
echo "</table>";  
}  
else // Wenn keine Anfrage vorhanden, Text ausgeben...  
        {  
    echo "Derzeit sind keine Supportanfragen vorhanden";  
        }   
}

Danke Paladin

LG