Entwickler-Ecke

Off Topic - php sql abfrage problem


Ironwulf - Sa 23.04.11 21:29
Titel: php sql abfrage problem
hey ho,
ich hab mal wieder ein kleines problemchen, kann mir jemand sagen was der unterschied zwischen beiden zeilen ist?


Quelltext
1:
2:
 
  $ergebnis = mysql_query("SELECT id, name, mail, datum, beitrag FROM gaestebuch");

und

Quelltext
1:
  $ergebnis = mysql_query("SELECT * FROM gaestebuch");                    

die erste zeile funktioniert bei mir problemlos, und bei der 2. bekomm ich gar nix ausgegeben, qarum ist das so? in der schule hab ich mal gelernt das man sich mit dem * alles holt und die website die mir grad sql in verb mit php bei bringt meint dasselbe, hoffe ihr könnt mir helfen/ das erklärn
achja ausgeben tu ich das ganze so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  while($row = mysql_fetch_object($ergebnis))
{
  echo $row->id;
  echo $row->name;
  echo $row->mail;
  echo $row->datum;
  echo $row->beitrag;
  echo "<br>";
}

dankö :)


jaenicke - Sa 23.04.11 21:51

Wenn es da ein Problem gibt, hätte es eigentlich eine Fehlermeldung geben müssen. Wie sieht denn deine Fehlerbehandlung aus? Vielleicht benutzt du mysql_error usw. ja falsch. :gruebel:


Ironwulf - Sa 23.04.11 21:56

fehlermeldung gibts halt keine, es wird einfach nichts ausgegeben


jaenicke - Sa 23.04.11 22:00

Das heißt es wird ein Ergebnis zurückgegeben? Hmm, keine Ahnung... :gruebel:

Aber wie gesagt: Wie sieht denn deine Fehlerbehandlung aus? Es ist ja immer noch nicht klar, ob die vielleicht falsch ist und deine Fehlerausgabe nur deshalb keinen Fehler ausgibt...


Ironwulf - Sa 23.04.11 22:08

*pfeiff*
hab ich keinehab mal eben das eingebaut:
mysql_error();
war das einzigste was ich so auf die schnelle gefunden hab, das erzählt mir aber au nix...


jaenicke - Sa 23.04.11 22:10

Naja, das gibt dir einen String zurück, ausgeben musst du den Fehler schon auch noch...

Quelltext
1:
2:
3:
4:
$ergebnis = mysql_query("SELECT * FROM gaestebuch");
if (!$ergebnis) {
    die('Fehler: ' . mysql_error());
}


Ironwulf - Sa 23.04.11 22:24

oha, so macht man des, aber was ausgeben tuts trotzdem nich
also hier nochma der code:
letztlich funktioniert ja auch die erste zeile, also nich ganz so dramatisch nur halt wunderlich ;D


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//$ergebnis = mysql_query("SELECT id, name, mail, datum, beitrag FROM gaestebuch");
  $ergebnis = mysql_query("SELECT * FROM gaestebuch");
   if (!$ergebnis) {
    die('Fehler: ' . mysql_error());
    }
    while($row = mysql_fetch_object($ergebnis))
{
  echo $row->id;
  echo $row->name;
  echo $row->mail;
  echo $row->datum;
  echo $row->beitrag;
  echo "<br>";
}


jaenicke - Sa 23.04.11 22:42

Probiere es doch einmal so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
  $ergebnis = mysql_query("SELECT * FROM gaestebuch");
  if (!$ergebnis) {
    die('Fehler: ' . mysql_error());
  }
  if (mysql_num_rows($ergebnis) == 0) {
    echo "Zeilenanzahl ist Null!";
    exit;
  }
  while($row = mysql_fetch_assoc($ergebnis))
  {
     echo $row["id"];
     echo $row["name"];
     echo $row["mail"];
     echo $row["datum"];
     echo $row["beitrag"];
     echo "<br>";
  }
// EDIT:
Prüfung der Zeilenanzahl eingebaut.