Zum Inhalt springen

[php] Simples mysql bringt kein ergebnis... *help*


Empfohlene Beiträge

Hi,

ich scheitere gerade an etwas ganz einfachem, aber weiß auch nicht warum es nicht geht... hier der Code:



$query = "select name from user where kdnr like '123-hh';";

$result = mysql_query($query);

$row = mysql_fetch_row($result);

$name = $row[0];	


// Jetzt wird hier schön $name mit Inhalt ausgeben:

echo "Name: " . $name;

//... gibt als Ausgabe -> Name: Meier


$query = "select name from userOut where kdnr like '123-hh';";

$result = mysql_query($query);

$row = mysql_fetch_row($result);

$name = $row[0];	


// Nun möchte ich mir hier wieder den Namen ausgeben lassen, aber bei

echo "Name: " . $name;

// ... bekomme ich nur als Ausgabe -> Name: 


Warum geht es einmal und einmal nicht?

Es sind quasi die gleichen Abfragen, nur aus unterschiedlichen Tabellen... warum ist die Variable $name nach dem 2. Select leer???

Und bitte keine Tipps wie Select über mehrere Tabellen, es müssen hier unbedingt zwei separate Abfragen sein ;)

Also wenn jemand meinen Denkfehler sieht... bitte her damit :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

nee, nee, die sind schon voll.

Gleiche Abfrage über mysqlfront auf der Tabelle bringt auch gewünschte Ergebnisse.

Sicher? Probier dochmal dich langsam an das Problem ranzuhangeln, das heisst die zweite Abfrage einfach mal komplett ohne WHERE clause absetzen. Kommt dann was zurück? Wenn nein, weitersuchen, wenn ja stimmt irgendwas mit der Abfrage an sich nicht. Ohne den Inhalt deiner DB können wir hier nämlich hächstens die Glaskugel befragen.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Denkfehler ist da glaube ich keiner drin.

Hast du mal versucht bei der 2. Abfrage einfach mal andere Variablen zu nehmen die nicht vorher schonmal benutzt wurden?

Wäre jetz das einzige wo ich mir vorstellen kann das der sich verhaspelt, obwohl das auch so funktionieren sollte.

Anderenfalls lass dir doch mal alle Variablen ausgeben und guck ab wo kein Wert mehr drin steht.

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

die zweite Abfrage einfach mal komplett ohne WHERE clause absetzen.
hhhmmmm... habe jetzt einfach mal bei der 2. Abfrage das hier gemacht:


$query = "select * from userOut;";

$result = mysql_query($query);

while($row = mysql_fetch_array($result) )

{

        echo "<br>Name: " . $row[Name];

}	

Aber da kriege ich nur als Ausgabe: Name: Name: Name: Name: u.s.w. Habe auch den anderen Tipp hier versucht, die Variablen in der 2. Abfrage umzubenennen:

$query1 = "select name from userOut where kdnr like '123-hh';";

$result1 = mysql_query($query1);

$row1 = mysql_fetch_row($result1);

$name1 = $row1[0];

Brachte aber auch nix... also langsam verzweifel' ich dran... :(

Tabelle gibt es auch wirklich, in phpmyadmin/mysqlfront sehe ich sie und kann auch meine sqls absetzen, ohne Probleme.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Stimmt groß und klein Schreibung denn? So wie ich das erkennen kann *Augen reib* hast du das Out groß geschrieben.

Wenns das nicht ist, weiß ich keinen Rat, außer das vllt in deinem Script die Verbindung zur DB wieder geschlossen wurde, dann müsste aber ne Fehlermeldung kommen, oder die Tabelle ist irgendwie nicht da?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

also userOut ist richtig, so heißt die Tabelle. Und das Feld heißt auch "name", klein geschrieben. Habe das auch schon durch getestet.... und n mysql_close() gibts auch net. Hatte auch schon mysql_free_result() versucht, ebenfalls ohne Erfolg.

Ich mein, ich habe solche Skripte bestimmt wie Sand am Meer geschrieben, solche Probs hatte ich dabei aber noch nie. Habe auch mal nen query-Teil aus nem anderen Skript, wo es geht, reinkopiert... aber es ging dann nicht. Zumindest nicht, wenn ich kurz vorher schon ne Anfrage hatte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hhhmmmm... habe jetzt einfach mal bei der 2. Abfrage das hier gemacht:


$query = "select * from userOut;";

$result = mysql_query($query);

while($row = mysql_fetch_array($result) )

{

        echo "<br>Name: " . $row[Name];

}	

Aber da kriege ich nur als Ausgabe: Name: Name: Name: Name:
hast du den hier ->
 echo "<br>Name: " . $row[Name];
auch bei $row[Name] auf die klein schreibung geschaut so wie ich das eben schnell überflogen habe sollte es doch
 echo "<br>Name: " . $row[name];

sein oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, da hast du recht, Nager, das Name muss ein "name" sein. Ist mir auch aufgefallen.. da dachte ich *juhu* aber nein, es brachte kein Ergebnis :(

Inzwischen habe ich in der Manual zu mysql_fetch_row() das hier gelesen:

Wiederholtes Aufrufen von mysql_fetch_row() liefert den nächsten Datensatz des Anfrageergebnisses oder FALSE, wenn keine weiteren Datensätze verfügbar sind.

Nun habe ich mal das hier gemacht:


echo '<pre>';

      var_dump($row);

echo '</pre>';

Und ratet mal was die Ausgabe ist? Das hier:

bool(false)

Hmmm... aber wo ist jetzt der Fehler.... ich rufe mysql_fetch_row() tatsächlich mehrmals auf, aber eigentlich immer auf ein anderes Resultset bezogen... Änderung der Variablenbezeichnung hatte ja auch nix gebracht... ?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auf die Gefahr hin, dich zu enttäuschen: Der Computer selber erzeugt keine Probleme. Das sind die Leute, die ihn bedienen.

OT:

Auch auf die Gefahr hin mir den Zorn des Forum auf den Leib zu ziehen,

das muss jetzt einfach raus!

predi, du bist ein klug*******er!

In diesem Sinne, gehet hin in Frieden.

Ciao TinTin

Link zu diesem Kommentar
Auf anderen Seiten teilen

poste mal bitte die neu gecodeten Zeilen zum vergleich...

Das sind die gleichen wie ganz oben im Ausgangsthread... nix geändert... nur noch mal in einen neue Datei gepackt, alle Dienste runtergefahren und neu gestartet, Cache geleert... und ja dann ging es... *hexerei*....

[OT]

Und Computer sind doch Menschen... oder warum redet ihr immer von 'ihm'? :PPPP

[/OT]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist zwar weit hergeholt, aber ich arbeite derzeit mit der Firebird/Interbase Datenbank und da gibt es ein Tool namens ISQL und damit habe ich meine anfänge gemacht und habe dort eine DB erstellt und diese mit Tabellen und Spalten gefüllt. Als ich diese dann per PHP auslesen wollte kam jedoch nichts. Ich bekam keine Ausgaben. Nach 3 Tagen testen, versuche, fluchen etc. hab ich dann herausgefunden, dass dieses ISQL überhaupt nichts in die DB geschrieben hat. Schien so als hätte dieses Tool in irgend eine temporäre Db geschrieben.

Nur nen kleiner Exkurs, dass Tools lügen können :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...