Probleme mit eigentlich Simpler DB Abfrage

Gray

Erfahrenes Mitglied
Ich hab folgendes Script:
PHP:
<?php

$nr = 1;

while ($pakete = mysql_fetch_array("SELECT * FROM pakete WHERE zur_kuendigung = '2'")) {

	$zutritt = mysql_fetch_array(mysql_query("SELECT * FROM zutrittsanforderung WHERE pkt_id = '$pakete[pkt_id]'"));

	$zusatz = mysql_fetch_array(mysql_query("SELECT * FROM zusatz_colo WHERE pkt_id = '$pakete[pkt_id]'"));

	$user = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE pkt_id = '$pakete[user_id]'"));

?>
Es kommt jedoch beim Aufrufen folgende Fehlermeldung:
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web1/html/ssl/verwaltung/server/zutrittsanforderung.php on line 86

Dies ist genau folgende Zeile:
PHP:
while ($pakete = mysql_fetch_array("SELECT * FROM pakete WHERE zur_kuendigung = '2'")) {

Ich habe leider keine Idee woran dies liegen könnte.
 
mysql_fetch_array erwartet als Parameter eine Datenbank-Ergebnis-Kennung. Also:
PHP:
$re = mysql_query("SELECT * FROM pakete WHERE zur_kuendigung = '2'");
while ($pakete = mysql_fetch_assoc($re)) {
  // ...
  }
Hat das geholfen?

Mamphil
 
Nicht-String-Werte (also Zahlenwerte) dürfen meines Wissens nach nicht in Anführungszeichen stehen.

Also müsste es z.B.
PHP:
"SELECT * FROM zusatz_colo WHERE pkt_id = $pakete[pkt_id]"
oder noch besser
PHP:
'SELECT * FROM zusatz_colo WHERE pkt_id = '.$pakete[pkt_id]
heißen.

Bei den anderen Abfragen muss das ganze natürlich auch entsprechend verändert werden.

Hoffe das hilft. ;)
 
Zuletzt bearbeitet:
@amon-ra:
Doch, das geht schon, zumindest solange, bis damit nicht gerechnet wird...
Kleiner Test:
Code:
SELECT '1' + '1' FROM Tabelle LIMIT 1
funtioniert problemlos und gibt 2 aus.

Mamphil
 
Mamphil hat gesagt.:
@amon-ra:
Doch, das geht schon, zumindest solange, bis damit nicht gerechnet wird...
Kleiner Test:
Code:
SELECT '1' + '1' FROM Tabelle LIMIT 1
funtioniert problemlos und gibt 2 aus.

Mamphil

Jau stimmt ... habs gerade noch mal ausprobiert.

Zurück zum eingetlichen Problem:
Die Abfrage an sich sieht ja richtig aus. Kann es sein das du einen Spaltennamen (zur_kuendigung) falsch geschrieben hast? Passiert mir ab und an ...
Was anderes fällt mir sonst auch nicht ein ...

Ach so: Geht die Geschweifte Klammer {} beim while() auch wieder zu?

Die Anführungsstriche ('2' -> 2) würd ich trotzdem weg lassen ... auch wenns daran jetzt nicht liegt :rolleyes:

LG, amon-ra
 
Ich bin mir 99,99%ig sicher, das Problem liegt hier:
Gray hat gesagt.:
Dies ist genau folgende Zeile:
PHP:
while ($pakete = mysql_fetch_array("SELECT * FROM pakete WHERE zur_kuendigung = '2'")) {

Beschreibung und Fehlerkorrektur: Siehe meinen obigen Beitrag.
Oder alternativ:
PHP:
while ($pakete = mysql_fetch_array(mysql_query("SELECT * FROM pakete WHERE zur_kuendigung = '2'"))) {
Mamphil
 
Zurück