Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySQL-Tabelle mit PHP auslesen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 13.01.2010, 01:57

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!
Zuletzt geändert von ben78 am 14.01.2010, 01:02, insgesamt 1-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 13.01.2010, 02:15

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

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 13.01.2010, 02:17

THX

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 13.01.2010, 02:38

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;;

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 13.01.2010, 03:02

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

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 13.01.2010, 03:15

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?

xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 13.01.2010, 03:15

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.

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 13.01.2010, 03:53

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.

gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 13.01.2010, 04:58

veraltet, soso ... du musst jedenfalls noch lernen, wie man richtig fragen stellt, scheint mir, oder ist dein problem jetzt gelöst?
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 13.01.2010, 05:06

Ja, Problem konnte endlich gelöst werden. THX

PHPSchmied
PostRank 3
PostRank 3
Beiträge: 79
Registriert: 20.11.2008, 15:53

Beitrag von PHPSchmied » 14.01.2010, 02:26

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?

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 14.01.2010, 05:11

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

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 14.01.2010, 05:22

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;;

Hobby_SEO79
PostRank 9
PostRank 9
Beiträge: 1883
Registriert: 19.06.2008, 23:09

Beitrag von Hobby_SEO79 » 14.01.2010, 07:15

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.

xlb
PostRank 5
PostRank 5
Beiträge: 282
Registriert: 13.08.2009, 21:11

Beitrag von xlb » 14.01.2010, 08:39

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

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag