[PHP] Bugfix suche

06/27/2010 15:02 nag#1
Hallo leute,
ich hab hier ein kleines Script geschrieben
Mein Problem ist folgendes:
Da ich mehrere Einträge habe funktioniert die funktion account nicht. sie gibt nichts aus. Wie kann ich das beheben?
06/27/2010 20:31 wurstbrot123#2
$mysql = mysql_query(result2);

$ vergessen.
06/27/2010 20:44 nag#3
Quote:
Originally Posted by wurstbrot123 View Post
$mysql = mysql_query(result2);

$ vergessen.
also
PHP Code:
    function account($ID)
    {
      
$result2 "SELECT username FROM user where ID =".$ID;
      
$mysql mysql_query($result2);
      echo 
$mysql;
    } 
Spuckt nur ressource id 6 aus xD
06/27/2010 21:34 wurstbrot123#4
Quote:
PHP Code:
    function account($ID)
    {
      
$abfrage "SELECT username FROM user where ID =".$ID;
      
$ergebnis mysql_query($abfrage);
      
$row mysql_fetch_object($ergebnis);
      echo 
$row->username;
    } 
sollte klappen
06/28/2010 00:12 Fratyr#5
Als erstes mal, lass lieber voerst die Finger von der OOP. Du solltest erstmal richtige
Klammerung und Code einrückung sowie die Trennung von Code und Ausgabe lernen
wenn du mit Klassen arbeitest. Auserdem hast du das Prinzip von Funktionen/Methoden
noch nicht ganz verstanden. Methoden beinhalten, ausgenommen einer Output Funktion nie Sprachkonstrukte wie echo, oder print() sondern haben einen Rückgabewert.
Dieser wird bekanntlich durch Return ausgelöst. Wenn du Rückgabewerte einer mysql
Funktion ausgibst wirst du immer "Ressource ID xxx" bekommen, ausgenommen bei
fetch befehlen, die geben dir ein Array aus. Und wie mein Vorposter es so schön
als Beispiel genommen hat, fetcht du nichteinmal deine Werte, obwohl es eigentlich
totaler Unsinn ist Objekte zu fetchen. Richtig müsste deine Methode also so heißen:
PHP Code:
public function account($id)
{
  
$query mysql_query("SELECT username FROM user where ID =".$id);
  return 
mysql_fetch_array($query);

In dieser Situation eine Variable für den Rückgabewert und für das SQL Statement
anzulegen halte ich für absolut Unsinnig und performancefressend, wenn man das
doch in jeder Methode so macht.
Auserdem sind deine Variablen auch noch falsch benannt, wieso hat ein SQL Statement
den Namen $result? Du hast doch noch garkeinen Rückgabewert :-*
Nebenbei bringt es dir, eigentlich nur Nachteile wenn deine Methoden so aussehen
wie in deiner Klasse, würdest du Quasi einfach die normalen mysql Funktionen
verwenden wäre das in deinem Fall auf jedenfall klüger :>