Was habe ich in meinem PHP Code falsch geschrieben?

Bild 1 - (programmieren, Fehler, Website) Bild 2 - (programmieren, Fehler, Website)

3 Antworten

Die Methode query liefert dir vermutlich FALSE zurück (Fehler), weshalb die foreach-Schleife nicht geht.

Warum query einen Fehler bringt, kann ich so auch nicht sagen. Entweder hast du gar keine Verbindung zur Datenbank oder deine Abfrage ist fehlerhaft.

Vielen Dank für deine Antwort, wie muss ich meinen Code umschreiben, damit es funktioniert?

0

Allgemeiner Rat, wie auch schon andere schrieben: Immer die Rückgabewerte prüfen, bevor Du sie verwendest.

Das gilt auch beim öffnen der Verbindung. In PHP ist die Rückgabe meist mixed, von daher ist es unabdingbar zu prüfen, bevor man einen Typen annimmt. (Für ein Foreach muß der Typ iterierbar sein).

Vielen Dank für deine Antwort, wie muss ich meinen Code umschreiben, damit es funktioniert?

0
@JB1002000

Du solltest ein:

try{

   PDO Instanz erzeugen

} catch(exception type identifier) {

  Ausnahmebehandlung

}

verwenden.

Nach dem query solltest Du vor dem foreach prüfen, ob das Resultat false ist, wenn ja kannst Du Dir den Fehler ausgeben lassen.

0
@JB1002000

Und ergänzend:

Dein SQL Statement ist nicht terminiert (also fehlerhaft). Das kann gut gehen, muß es aber nicht.

0
@KarlRanseierIII

Jetzt ist der 1. Fehler weg und leider ein neuer da:

Fatal error: Call to a member function query() on resource in /users/X/www/X.php on line 66

0

Schau doch mal, was die Methode query zurückgibt: http://php.net/manual/de/pdo.query.php

Dies ist kein Objekt, über welches du ohne Prüfung iterieren solltest. Vermutlich bekommst du den Wert false zurück.

Vielen Dank für deine Antwort, wie muss ich meinen Code umschreiben, damit es funktioniert?

0
@JB1002000

Korrigiere den SQL Query und/oder die DB-Konfigurationsdaten für die Verbindung, sofern diese falsch sind und prüfe, ob das Ergebnis ungleich false ist, bevor du es in dem foreach-Statement verwendest.

0
@regex9

Jetzt ist der 1. Fehler weg und leider ein neuer da:

Fatal error: Call to a member function query() on resource in /users/X/www/X.php on line 66

0
@JB1002000

Na dann schau doch mal, was in der Fehlerzeile steht.

0

?php $_db_host = "localhost"; $_db_username = "..."; $_db_passwort = "..."; $_db_datenbank = "..."; # Verbindung zur Datenbank herstellen $_link = mysql_connect($_db_host, $_db_username, $_db_passwort); # Prüfen ob die Verbindung geklappt hat if (!$_link) { # Nein, also das ganze Skript abbrechen ! die("Keine Verbindung zur Datenbank möglich: " . mysql_error()); } # Verbindung hat geklappt, weiter ... echo "Verbindung zur Datenbank erfolgreich.

"; # Datenbank auswählen mysql_select_db($_db_datenbank, $_link); // Ausgabe foreach ($_link->query("SELECT name, erkennungszahl") as $row) { echo $row['name']." ".$row['erkennungszahl']."

"; } ?> Der Fehler liegt in der Ausgabe...

0

Mist das sieht nicht gut aus... Kann ich dir den gesamten Code mal irgendwie anders senden?

0
@JB1002000

Das alles steht in Zeile 66? Auf diese Zeile solltest du dich fokusieren.

Zudem wäre es einmal gut, wenn du mehr mit der Dokumentation arbeiten würdest. Bei all den Artikelseiten für die MySQL-Funktionen,die du verwendest, weist ein dicker roter Balken am Seitenanfang daraufhin, dass diese nicht mehr verwendet werden sollten. Der objektorientierte Stil wird von diesen Funktionen ebenso nicht unterstützt, weshalb der Aufruf von query so wohl kaum funktionieren kann.

Verwende http://php.net/manual/de/mysqli.query.php und nutze insgesamt entweder nur den prozeduralen oder nur den objektorientierten Stil.

http://php.net/manual/de/mysqli.quickstart.dual-interface.php

Den Rat, das Ergebnis der Abfrage erst zu überprüfen, hast du im Übrigen noch immer ignoriert. Wenn das Ergebnis von boolschen Typs ist, kann dir gerade so ein Fehler um die Ohren fliegen, wie er es momentan tut.

0

Bestimmte zeichenkette aus string entfernen. PHP, MySQL

Hallo, ich lade mir via php Eine Zeichenkette (genauer gesagt html code) aus meiner sql datenbank und bevor ich den in einem wysiwyg editor ausgebe, möchte ich eine zeichenkette entfernen. wie kann ich das machen? muss ich da preg_replace verwenden, oder gibts da bessere möglichkeiten?

...zur Frage

was ist am PHP Code falsch?

Bin grad ein bisschen verwirrt.

Auf Bild 1 seht ihr checkboxen, die mit den PHP Code - siehe Bild 2 ausgewertet werden sollen.

Es soll ein Moderationstool werden, womit man automatisch PNs generieren kann.

Sprich if (-Häkchen bei Box 1-) dann soll echo 'du hast gegen Richtlinie TEST1 verstoßen'

So soll es auch bei allen gehen. Kommt aber immer fatal error in line 4. Wieso? Was genau läuft da falsch, wie muss ich das schreiben?

...zur Frage

[PHP] If-Abfrage mit Variable in Bedingung?

Hallo,

ich will mit PHP eine IF-Abfrage programmieren, die als Bedingung die Werte die in einer Variable ($example_users) stehen überprüft:

CODE [PHP]

    [...]   
    $example_users = '"user1" or "user2"';
    [...]
    if ( $zeile['username'] == $example_users ){
        echo "richtig";
    }else{
        echo "falsch";
    }
    [...]

Ausgabe mit $zeile['username'] = user1

falsch

Könnt Ihr mir hier weiterhelfen?

Danke

...zur Frage

Wieso kann mein Computer meine PHP Befehle nicht wiedergeben?

Hallo, ich bin gerade dabei mir selbst PHP beizubringen. Mit Büchern Internetseiten und Videos. Dabei ist mir aufgefallen, dass mein PC das PHP überhaupt nicht wiedergibt. Daran, dass ich den Code falsch ist kanns nicht liegen, denn ich hab es mit ein paar Beispielen, aus dem Internet versucht und auch da hat es auch nicht funktioniert. Woran kann das liegen und was kann ich tun?

...zur Frage

Was bedeutet dieser PHP - MySQL Fehler?

Ich möchte mit meiner lokalen mySQL Datenbank eine Verbindung herstellen. Ich habe Apache und MySQL via XAMPP laufen. Doch wenn ich eine MySQL Verbindung herstellen möchte, erscheint folgende Meldung:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Users\Tom\Documents\XAMPI\htdocs\chat.php:2 Stack trace: #0 {main} thrown in C:\Users\Tom\Documents\XAMPI\htdocs\chat.php on line 2

Meine Zeile 2 sieht folgendermaßen aus:

$dbconnect = mysql_connect('localhost','root','');

Verstehe nicht, was daran falsch sein soll.

Habe XAMPP kürzich erst installiert. Kann es sein, dass es mysql_connect nicht mehr gibt? Habe gehört, es soll aus PHP entfernt werden. Aber was soll da dann sonst hin?

...zur Frage

Was möchtest Du wissen?