mysql_fetch_array(): supplied argument is not ...????
dreamworker
- php
0 ichen0 Tom0 dreamworker0 Tom0 dreamworker0 Tom
Hallo,
bin blutiger Newbie im Bereich PHP und mySQL..allerding möchte ich auf meiner HP eine Datenbank Abfrage machen um eine Addressliste auszugeben/zu löschen oder neue Adressen hinzuzufügen mein Skript lautet:
include ('../../../inc/001/mysql.inc.php');
$connection = mysql_connect($sql["host"], $sql["uid"], $sql["pwd"]);
$abfrage="SELECT * FROM schools";
$ergebnis = mysql_query($abfrage, $connection);
if($action == "neu"){
$abfrage = "INSERT INTO schools (,school,type,name_title,name_sur,name_given,name2_title,name2_sur,name2_given,address_street,address_zip,address_city,address_state,address_country,phone_business,phone_fax,phone_private,phone_cell,e_mail,homepage) VALUES ('$school', '$type','$name_title','$name_sur','$name_given','$name2_title','$name2_sur','$name2_given','$address_street','$address_zip','$address_city','$address_state','$address_country','$phone_business','$phone_fax','$phone_private','$phone_cell','$e_mail','$homepage')";
mysql_query($abfrage, $connection);
print("<tr><td colspan="7">Added to Database</td></tr>");
}
if($action == "loeschen"){
$abfrage = "DELETE FROM schools WHERE id='$id'";
mysql_query($abfrage, $connection);
print("<tr><td colspan="7">Data $id deleted!!</td></tr>");
}
$abfrage = "SELECT * FROM schools";
$ergebnis = mysql_query($abfrage, $connection);
while ($line = mysql_fetch_array($ergebnis)){
print("
<tr bgcolor="#CCCCCC">
<td>$line[school]</td>
<td>$line[type]</td>
<td>$line[name_title]</td>
<td>$line[name_sur]</td>
<td>$line[name_given]</td>
<td>$line[name2_title]</td>
<td>$line[name2_sur]</td>
<td>$line[name2_given]</td>
<td>$line[address_street]</td>
<td>$line[address_zip]</td>
<td>$line[address_city]</td>
<td>$line[address_state]</td>
<td>$line[address_country]</td>
<td>$line[phone_business]</td>
<td>$line[phone_fax]</td>
<td>$line[phone_private]</td>
<td>$line[phone_cell]</td>
<td>$line[e_mail]</td>
<td>$line[homepage]</td>
<td><a href="$PHP_SELF?action=loeschen&id=$zeile[id]">Delete?</a></td>
</tr>
");
}
weiter unten werden Formulardaten an das Skript übergeben.
Beim Aufruf der Seite bekomme ich folgene Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...... on line 49 und nicht die Liste der Schulen.
da ist die Zeile mit der while-Schleife.
Wo liegt mein Fehler?
Die Datenbank ist vorhanen die entsprechene Tabelle schools auch...
HI
$ergebnis = mysql_query($abfrage, $connection);
Ich denke, wenn du das $connection einfach rauslässt, und nur $abfrage in mysql_query(); schreibst müsste es dann gehen.
ichen
Hello,
$ergebnis = mysql_query($abfrage, $connection);
Ich denke, wenn du das $connection einfach rauslässt, und nur $abfrage in mysql_query(); schreibst müsste es dann gehen.
Das lass mal lieber drin. Cir verbindungskennung lassen nur die Faulen weg. Spätestens, wenn man auf zwei Datenbanken/Datenbankserver gleichzeitig zugreifen will, benötigt man sie sowieso wieder.
Aber beschäftige Dich mal mit der Fehlerbearbeitung.
Hinter die Zeile mit dem Query:
if(!$ergenis)
{
echo mysql_error();
}
else
{
# Ergebnisverarbeitung
}
Dann wird Dir schon ein Licht aufgehen.
Liebe Grüße aus http://www.braunschweig.de
Tom
»
Dann wird Dir schon ein Licht aufgehen.
Ich fürchte das Licht ist jetzt ganz ausgegangen,
1. hinter welchem Query?
2. bei beidem bleibt der Fehler und erzeugt wieder dieselbe Fehlermeldung...
Ahhh....hilfe!!
Ok die Fehlermeldung ist raus...
Jetzt kommt: No Database selected... obwohl meines Erachtens nach die Connection und Query Anweisungen korrekt sind.
?????
Hallo,
Jetzt kommt: No Database selected... obwohl meines Erachtens nach die Connection und Query Anweisungen korrekt sind.
nein - du verwendest mysql_connect und mysql_query, aber nirgends wählst du die Datenbank aus (mit mysql_select_db ->http://www.php.net/mysql_select_db).
Grüße aus Nürnberg
Tobias
nein - du verwendest mysql_connect und mysql_query, aber nirgends wählst du die Datenbank aus (mit mysql_select_db
Danke jetzt endlich klappts....
Gruss aus Tölz
$ergebnis = mysql_query($abfrage, $connection);
Ich denke, wenn du das $connection einfach rauslässt, und nur $abfrage in mysql_query(); schreibst müsste es dann gehen.
Das funzt leider nicht der Fehler verlagert sich auf die 37. Zeile:
while ($line = mysql_fetch_array($ergebnis))
ich bin ratlos...
Hello,
Das funzt leider nicht der Fehler verlagert sich auf die 37. Zeile:
Gewöhnt Dir das Wort "funzt" ab. Denn das deutet auf eine genauso schlampige Sprache und Programmierweise hin. Exaktheit in der Sprache wäre ein erster Schritt.
while ($line = mysql_fetch_array($ergebnis))
ich bin ratlos...
Das ist eine Lüge!
Du hast noch einen rat von mir.
Und noch ein Tipp:
Wieviele Datenbanken hast Du denn im Zugriff?
------
1. Server connect
2. Database select
3. Query
Liebe Grüße aus http://www.braunschweig.de
Tom
Wieviele Datenbanken hast Du denn im Zugriff?
------
- Server connect
- Database select
- Query
Verzeihung für die jungendlichen Ausdrücke...ich hab lediglich eine Datenbank im Zugriff, nur die, in der sich die Tabelle schools befindet, auf die ich ja zugreifen will.
1.2.3. abgearbeitet!
wie gesagt es FUNKTIONIERT nicht...
Hello,
Wieviele Datenbanken hast Du denn im Zugriff?
------
- Server connect
- Database select
- Query
Verzeihung für die jungendlichen Ausdrücke...
schon verziehen. Aber Kleider machen Leute und Sprache den Programmierer.
ich hab lediglich eine Datenbank im Zugriff, nur die, in der sich die Tabelle schools befindet, auf die ich ja zugreifen will.
Würdest Du für die Richtigkeit dieser Aussage deinen rechten Arm hergeben?
Kontrollier das lieber nochmal! ;-)
1.2.3. abgearbeitet!
Glaube ich nicht
Und was sind die Fehlermeldungen, nachdem Du die Fehlerbehandlung eingebauit hattest?
wie gesagt es FUNKTIONIERT nicht...
Du machst Di das zu bequem. Mehr als Dich mit der Nase drauf stupsen werde ich nicht tun. Ich werde es Dir nicht programmieren. Dazu müsstest Du erstmal einen sauberen Stil entwickeln: Funktionen, Fehlerbehandlung, Absätze im Quellcode, Kommentare und natürlich eine bessere Beschreibung dessen, was Du schon unternommen hast, um den Fehler zu finden.
Liebe Grüße aus http://www.braunschweig.de
Tom