SQL Fehler

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
codemonkey
Ehemaliges Teammitglied
Beiträge: 3005
Registriert: 13.10.2002 15:15
Wohnort: Wilhelmshaven
Kontaktdaten:

SQL Fehler

Beitrag von codemonkey »

Moin Leute.

Ich code mir gerade ein Gästebuch zusammen. Es läuft auch alles wirklich super und ohne Fehler, nur diese verdamichte index seite, wo die ganzen Daten aus der Mysql DB geholt werden sollen, verursacht folgenden Fehler
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/php/gb/index.php on line 12
und das ist der Code

Code: Alles auswählen

<?php

//Config einfügen
include('includes/config.php');

//Mysql Daten holen
if (!($result = @ mysql_query ("SELECT name, email, website, kommentar FROM gbook", $connection)))
 fehler();

while($row = mysql_fetch_row($result))
{
 for ($i=0; $i<mysql_num_fields($result); $i++)
   echo $row[$i] . " ";
   echo "<br />";
}


//Fuß einfügen
include('includes/footer.php');

?>
Ich habe schon so vieles versucht. Aber nichts hat geholfen. Eine DB-Verbindung steht, weil ich die config.php include. Also daran liegts auch nicht.
Please help! :cry:
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Mach mal das @ vor mysql_query weg - dann könnte die Fehlermeldung etwas aussagekräftiger sein...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

$result == @ mysql_query

Bei if bitte 2 = verwenden. http://www.php.net/manual/de/language.o ... arison.php
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Sascha,

das mit dem einen Gleichheitszeichen hat an dieser Stelle durchaus seine Berechtigung :-D
Die Query soll ja der Ergebniskennung zugewiesen werden...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Code: Alles auswählen

if(mysql_error())
     die("SQL-Fehler " . mysql_errono() . ": " . mysql_error());
Das kannst/solltest du nach jedem MySQL-Befehl einfügen. Kannst es ja in eine Funktion packen oder so.

Wird in config.ph eine Verbindung aufgebaut? Wenn nicht, liegt da der Fehler. Ansonsten hilft dir die Ausgabe von mysql_error().
codemonkey
Ehemaliges Teammitglied
Beiträge: 3005
Registriert: 13.10.2002 15:15
Wohnort: Wilhelmshaven
Kontaktdaten:

Beitrag von codemonkey »

Also. Das @ habe ich jetzt weg gemacht, und ich habe den von Pyramide geschriebenen Code eingefügt. Der Code sieht jetzt so aus:

Code: Alles auswählen

<?php

//Config einfügen
include('includes/config.php');

//Mysql Daten holen
if (!($result = mysql_query ("SELECT name, email, website, kommentar FROM gbook", $connection)))
fehler();

while($row = mysql_fetch_row($result))
{
for ($i=0; $i<mysql_num_fields($result); $i++)
   echo $row[$i] . " ";
   echo "<br />";
}

if(mysql_error())
     die("SQL-Fehler " . mysql_errono() . ": " . mysql_error());

//Fuß einfügen
include('includes/footer.php');

?>
Fehler sind immernoch da. Unzwar folgende:
Stop! Es ist ein Fehler aufgetreten.
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/php/gb/index.php on line 10

Fatal error: Call to undefined function: mysql_errono() in /www/htdocs/php/gb/index.php on line 18
Ich hab nochmal ein bisschen rumgebastelt, half aber nichts. Gibt es überhaupt 'mysql_errono()'??
Na ja egal.

@Pyramide
Ja, es wird eine Verbindung aufgebaut. Durch die config.php die ich in die index.php include.
Die config.php sieht so aus:

Code: Alles auswählen

<?php

//Funktionen einfügen
include('functions.php');

//Mysql Verbindung herstellen
$connection = mysql_connect("php-helper.itst.org","php","xxxxxx");
mysql_select_db("gbook", $connection);

 if(!($connection))
  {
  fehler();
  }

$table = gbook;
$db = php;

?>
in der footer.php schließe ich die Verbindung dann:

Code: Alles auswählen

<?php

//Mysql Verbindung schließen
mysql_close($connection);

//Copyright
echo "Copyright 2003, Daniel Richter aka codemonkey";

?>
Das muss aber alles richtig sein, weil ich schon eine Seite gecodet habe, inder man den Gästebuch eintrag schreibt. Und der Eintrag wird richtig in die Datenbank übertragen. Ich habs mit phpMyAdmin überprüft. Der ist da.
Da ist nur irgendwie ein Fehler in der index.php - ich weiß nur nicht welcher :cry:
codemonkey
Ehemaliges Teammitglied
Beiträge: 3005
Registriert: 13.10.2002 15:15
Wohnort: Wilhelmshaven
Kontaktdaten:

Beitrag von codemonkey »

ohh mist. Jetzt habe ich meinen Fehler gefunden!
Ich habe mit

Code: Alles auswählen

mysql_select_db
den Namen der Tabelle angewählt und nicht den Namen der DB. :x :-? :) :D
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

codemonkey hat geschrieben:Gibt es überhaupt 'mysql_errono()'??
FippTehler...Ich meine natürlich mysql_errno()
codemonkey
Ehemaliges Teammitglied
Beiträge: 3005
Registriert: 13.10.2002 15:15
Wohnort: Wilhelmshaven
Kontaktdaten:

Beitrag von codemonkey »

Ich habe nochmal einen SQL Fehler. Möchte nur eine Tabelle erstellen und schon mache ich Fehler. Oh mann

Code: Alles auswählen

CREATE  TABLE DW_teaser "(
 titel TINYTEXT;
 teaser TEXT;
)"
Was ist daran falsch? :cry:
SuxxeS
Mitglied
Beiträge: 119
Registriert: 06.01.2003 14:12
Wohnort: Fdorf
Kontaktdaten:

Beitrag von SuxxeS »

Code: Alles auswählen

CREATE  TABLE DW_teaser "(
 titel TINYTEXT,
 teaser TEXT
)";
So vielleicht?
Wouh ey Baby was machst du so, im Strobo glänzt dein Apfelpo
Antworten

Zurück zu „Coding & Technik“