Seite 1 von 2

MySQL-Tabelle mit PHP auslesen

Verfasst: 13.01.2010, 01:57
von ben78
Hi Abakusianer,

1. Ich bin ein absoluter Anfänger was PHP und MySQL angeht. Falls ich dumme Fragen stelle, bitte ich um Euer Verständnis.

ich habe eine MySQL-Datenbank erstellt und auch schon eine Tabelle angelegt. Die Tabelle ist bereits mit Daten gefüttert.

Problemstellung:
Mit einem PHP-Scrip versuche ich die Tabelle auf einer Website auslesen zu lassen, was mir aber nicht gelingt.

Ich bekomme immer folgende Meldung:
Anfrage nicht erfolgreich. Liegt wohl an der mysql_query, wenn mich nicht alles täuscht.

Hier mal das Script:

...

VIELEN DANK AN ALLE DIE HELFEN KÖNNEN!

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 13.01.2010, 02:15
von xlb
N'Abend ...
Ich bekomme immer folgende Meldung:
Anfrage nicht erfolgreich. Liegt wohl an der mysql_query, wenn mich nicht alles täuscht.
Schau mal, was dir MySQL selbst an dieser Stelle zu sagen hat: php.net : mysql_error()

Code: Alles auswählen

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
echo mysql_error();
Ist durchaus redseelig, wenn man's lässt.

Gruss,
xlb

Verfasst: 13.01.2010, 02:17
von ben78
THX

Verfasst: 13.01.2010, 02:38
von 800XE
xlb hat geschrieben:

Code: Alles auswählen

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
echo mysql_error();
funktioniert das so?
der "die" steht für "sterben" = nochwas machen und dann ende

quasie ein echoexit
echo( 'letzte Meldung' );exit();
= echoexit( 'letzte Meldung' ); // echoexit() gibts nicht wirklich
= die ( 'letzte Meldung' );

Code: Alles auswählen

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich" . mysql_error());
so tut das tun
ich hab da was universelles ... darin sehe ich dann die gestellte Frage (z.B. könnte die ja anders aussehen wie ich denke bzw will das sie aussieht .... und so kann man dann gleich sehen das sie nicht so aussieht wie sie aussehen soll)

Code: Alles auswählen

mysql_query&#40;$query&#41; or die&#40; $query .'<hr>' . mysql_error&#40;&#41;&#41;;

Verfasst: 13.01.2010, 03:02
von ben78
Kann mir bitte jemand posten, was da an dem Script falsch ist oder fehlen könnte, damit ich eine MySQL-Tabelle auslesen lassen kann.

Verfasst: 13.01.2010, 03:15
von 800XE
ben78 hat geschrieben:Kann mir bitte jemand posten, was da an dem Script falsch ist oder fehlen könnte, damit ich eine MySQL-Tabelle auslesen lassen kann.
Wie lautet die Fehlermeldung?

Verfasst: 13.01.2010, 03:15
von xlb
Hast du "unsere" Tips, von wegen mysql_error() und die() befolgt? Da würde dann z.B. stehen, ob die Syntax des Queries nich OK ist ...

Was sagt denn mysql_error(), vorm "sterben" oder eben nach dem "nicht-sterben" oder ...?

Hast du mal ein error_reporting(E_ALL) an den Anfang deines Skripts gestellt, um "generell" PHP-Fehler angezeigt zu bekommen?

@800XE:
Jupp - has'ja recht. Is'schon spät - die Lider sooo schwer ... :wink:
Hast nu'ma wirklich eine äusserst prägnante Art, die Dinge auf den Punkt zu bringen - auf so poetischphilosophisch, bisweilen etwas sarkastischmisantropische Art und Weise.

Verfasst: 13.01.2010, 03:53
von ben78
Hey Leutz,

erstmal BIG THX. Ich habe jetzt raus, dass "or die" ziemlich veraltet sein soll.

So ein error_reporting(E_ALL) hätte ich schon gerne. Aber ich bin in Sachen PHP und MySQL noch ganz frisch.

Verfasst: 13.01.2010, 04:58
von gnark
veraltet, soso ... du musst jedenfalls noch lernen, wie man richtig fragen stellt, scheint mir, oder ist dein problem jetzt gelöst?

Verfasst: 13.01.2010, 05:06
von ben78
Ja, Problem konnte endlich gelöst werden. THX

Verfasst: 14.01.2010, 02:26
von PHPSchmied
Richtig "or die" ist nicht im Sinne des Objekt Orientierten Coding Standards. Genauso wie continue, break, exit und return welches nicht am ende einer Methode steht. Und ich danke xlb das er mir direkt den Beweis liefert mit seiner Falschaussage, die ohne "or die" nicht passiert wäre.

Viel sinnvoller ist es Fehler abzufangen und darauf zu reagieren. Da PHP keine Exceptions hat muss man das halt in dieser form machen wie hier vorgeschlagen.

Ein Praxis Beispiel:
A will Geld an B senden per Online Banking.
A Konto wird belastet - ein Fehler tritt auf. Skript beendet sich :o
B bekommt kein Geld weil Skript abgebrochen ist, aber A wurde das Geld bereits abgebucht.

Richtig wäre das A den Fehler abfängt und die Transaktion Rollbäckt (ich weiß es ist kein wort :o).

Und warum nicht direkt richtig und sauber lernen anstatt in ein paar Jahre neu erlernen oder umdenken?

Verfasst: 14.01.2010, 05:11
von 800XE
PHPSchmied hat geschrieben:Ein Praxis Beispiel:
A will Geld an B senden per Online Banking.
A Konto wird belastet - ein Fehler tritt auf. Skript beendet sich :o
B bekommt kein Geld weil Skript abgebrochen ist, aber A wurde das Geld bereits abgebucht.

Richtig wäre .... Transaktion Rollbäckt
Exeption(oder so) Fehlerbehandlung ...
welche sinnvolle Weiterarbeit gibt es wenn keine Daten gelesen wurde ....
... STOPP ist da absulut sinnvoll


Geldverkehr
Wenn A das Geld belastet und auch überweist und dan B beim gutschreiben abstürtzt, dann wird A die Belastung rückgängigmachen da A von B keine Erfolgsmeldung bekommen hat

Und wenn (wie in deinem Beispiel) A zwischen Belastung und Versand abstürtzt, dann wird A wicherlich irgendwann die fehlende Erfolgsmeldung bemerken und die Belastung stornieren

Das ganze nent sich TranssaktionProtokol
und beim Überweisen gibts da sogar ein doppeltes
(das ist dann 3 Stufig)
1. belasten und Versenden (oder sind das schon 2 STufen)
2. auf Erfolgsmelung warten damit die Aktion wirklich gültig ist
--- einfaches TransaktionsProtokol ist hier zuende -----
3. Melden das die Erfolgsmeldung angekommen ist

Verfasst: 14.01.2010, 05:22
von 800XE
Wozu willst du die Eception?

Damit die Fehlerbehandlung an einem Zentrallen ort ist?

Code: Alles auswählen

function Exception&#40;$query&#41;
&#123;
  echo&#40; 'Felhermeldung &#58;'.mysql_error&#40;&#41; &#41;;
  //exit&#40;&#41;;
&#125;
    $query  = ' SELECT diesunddas FROM ablageort';
    $query .= ' LIMIT 1';
    $result = mysql_query&#40;$query&#41; or Exception&#40;$query&#41;;
  echo&#40; '################'&#41;;
exit&#40;&#41;;
Wenn du in der Exception() den exit(); wegläst, kannst du das Script auch weitterlaufen lassen

Wenn du dich daran störst das du das " or Exception($query);" im Script nicht willst, dann tu es eben Kapseln

Code: Alles auswählen

function QueryMitExceptionBreak&#40;$query&#41;
&#123;
  echo&#40; 'Felhermeldung &#58;'.mysql_error&#40;&#41; &#41;;
  exit&#40;&#41;;
&#125;
function QueryMitException&#40;$query&#41;
&#123;
    $result = mysql_query&#40;$query&#41; or QueryMitExceptionBreak&#40;$query&#41;;
  return&#40; $result &#41;;

&#125;
    $query  = ' SELECT diesunddas FROM ablageort';
    $query .= ' LIMIT 1';
    $result = QueryMitException&#40;$query&#41;;

Verfasst: 14.01.2010, 07:15
von Hobby_SEO79
Wenn man viele Tabellenfelder ausfüllt, können sich bei INSERT INTO ... VALUES .... öfters mal Fehler einschleichen. Da fehlt n Komma, ne Spalte oder n Hochzeichen. Mir sogar mal passiert, das gewisse Spaltenbezeichnungen nicht funktionieren. Zum Beispiel "Alter" ist n mysql Befehl. Wenn man den irrtümlicherweise nutzt, trägts dir nichts in die Tabelle ein. Hat mich mal ne Menge Zeit gekostet das rauszufinden!

Du kannst auch optional Dein query zerlegen, d.h. folgendermaßen die Anfrage senden:

Code: Alles auswählen

INSERT INTO tabelle &#40;Feld1&#41; VALUES &#40;'wert1'&#41;;
INSERT INTO tabelle &#40;Feld1, Feld2&#41; VALUES &#40;'wert1, wert2'&#41;;
INSERT INTO tabelle &#40;Feld1, Feld2, Feld3&#41; VALUES &#40;'wert1, wert2', wert3'&#41;;
INSERT INTO tabelle &#40;Feld1, Feld2, Feld2, Feld4&#41; VALUES &#40;'wert1, wert2', wert3', wert4'&#41;;
Nach jeder Anfrage einfach in die Tabelle schaun, ob eingetragen. Dies nur, falls Du mit den Methoden der Fehlersuche nicht vertraut bist.

Verfasst: 14.01.2010, 08:39
von xlb
Und ich danke xlb das er mir direkt den Beweis liefert mit seiner Falschaussage, die ohne "or die" nicht passiert wäre.
Hä?
Da PHP keine Exceptions hat ...
Abermals: Hä? PHP5 : Exceptions