Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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 :)

Tabellen sind leer?

nee, nee, die sind schon voll.

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

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.

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

$query = "select name from [COLOR=DarkRed]userOut[/COLOR] where kdnr like '123-hh';";

$result = mysql_query($query);

Schätze mal, die Tabelle gibt es nicht, oder er hat Probleme bei der überschreibung der Variablen

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

Das ist schon richtig das da nen Out dahinter steht, jedenfalls wenn ich das richtig verstanden habe :)

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.

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?!

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.

Vermutlich ist es was so simples das es einfach nicht auffällt.

Aber ich bin Ratlos.

Vielleicht den Teil nochmal ganz neu schreiben *g* vllt is der Fehler dann nicht mehr. :rolleyes:

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?

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... ?!

Vielleicht den Teil nochmal ganz neu schreiben *g* vllt is der Fehler dann nicht mehr. :rolleyes:
Das wars... :)

Warum auch immer.... strange... aber naja... Computer sind doch auch nur Menschen, oder wie war das? ;)

Das wars... :)

Warum auch immer.... strange... aber naja... Computer sind doch auch nur Menschen, oder wie war das? ;)

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

Gruß,

Markus

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

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]

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 :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.