newby braucht hilfe: mysql_fetch_assoc(): supplied argument is not a valid MySQL resu

Parker Lewis

Grünschnabel
Moin,

mir wurde eine HP mit MySQL-Datenbank übertragen zur Wartung und habe das Problem, dass ich die lustige Fehlermeldung: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/www/users/amgdfn/function.php on line 17 bekomme:

Die function.php lautet wie folgt:
<?

function ort($ort)
{
if ($ort=="6") {$t_ort="6 (2002)";}
if ($ort=="7") {$t_ort="7 (2003)";}
if ($ort=="8") {$t_ort="8 (2004)";}
if ($ort=="9") {$t_ort="9 (2005)";}

return $t_ort;
}

function person($person)
{
$selekt = "select ID, p_vorname, p_nachname, p_veroeff from person where ID = $person";
$suche = mysql_query($selekt);
$a = mysql_fetch_assoc($suche);
$link = "<a href=\"../wir/mitglieder.php?ID=";
$link2 = "\" Title=\"weitere Informationen zur Person\">";
unset ($t_person);
if ($a[p_veroeff]==1) {$t_person= "$link$a[ID]$link2$a[p_vorname] $a[p_nachname]</a>"; }
if ($a[p_veroeff]==2) {$t_person = "$a[p_vorname] $a[p_nachname]";}

return $t_person;
}
// Person ohne Link
function person_ol($person)
{
$selekt = "select ID, p_vorname, p_nachname, p_veroeff from person where ID = $person";
$suche = mysql_query($selekt);
$a = mysql_fetch_assoc($suche);
if ($a[p_veroeff]) {$t_person_ol = "$a[p_vorname] $a[p_nachname]";}

return $t_person_ol;
}

function buch($ID_literatur, $link)
{
$selektb = "select * from literatur where ID=$ID_literatur";
$sucheb = mysql_query($selektb);
$b = mysql_fetch_assoc($sucheb);
if ($link==0)
{
$autor1 = person_ol($b[l_p_ID]);
$autor2 = person_ol($b[l_p2_ID]);
$autor3 = person_ol($b[l_p3_ID]);
} else {
$autor1 = person($b[l_p_ID]);
$autor2 = person($b[l_p2_ID]);
$autor3 = person($b[l_p3_ID]);
}


$autor=$autor1;
if ($autor2 and empty ($autor3)) {$autor="$autor1 und $autor2";}
if ($autor3) {$autor="$autor1, $autor2 und $autor3";}

if (empty ($b[l_utitel])) {$untertitel = "" ;} else {$untertitel = ". $b[l_utitel]"; }
if (empty ($b[l_reihe])) {$reihe = ", " ;} else {$reihe = " (= $b[l_reihe]) ";}
if (empty ($b[l_isbn])) {$isbn = "" ;} else {$isbn = " ISBN: $b[l_isbn];";}
if (empty ($b[l_seiten])) {$seiten = "" ;} else {$seiten = " $b[l_seiten] Seiten";}
if (empty ($b[l_preis])) {$preis = "" ;} else {$preis = "; Preis: $b[l_preis]";}
if (empty ($b[l_online])) {$online = "" ;} else
{$online = "; eText: <a href=\"$b[l_online]\" target=\"_blank\">$b[l_online]</a>";}

if ($b[l_mono]==1)
{$t_buch="$autor: $b[l_titel]$untertitel$reihe $b[l_ort] $b[l_jahr]$online$isbn$seiten$preis";}

if ($b[l_mono]==2)
{$t_buch="$b[l_titel]$untertitel, hg. v. $autor$reihe $b[l_ort] $b[l_jahr]$online$isbn$seiten$preis";}

if ($b[l_mono]==3)
{$t_buch="$b[l_titel]";}

return $t_buch;
}

function aufsatz($ID, $l)
{
$selektc = "select * from aufsatz where ID=$ID";
$suchec = mysql_query($selektc);
$c = mysql_fetch_assoc($suchec);

if ($l==1)
{
$autor1c = person($c[person_ID_1]);
$autor2c = person($c[person_ID_2]);
$autor3c = person($c[person_ID_3]);
}
else
{
$autor1c = person_ol($c[person_ID_1]);
$autor2c = person_ol($c[person_ID_2]);
$autor3c = person_ol($c[person_ID_3]);
}

$autorc=$autor1c;
if ($c[person_ID_2]) {$autorc="$autor1c und $autor2c";}
if ($c[person_ID_3]) {$autorc="$autor1c, $autor2c und $autor3c";}

if (empty ($c[utitel])) {$untertitel = "" ;} else {$untertitel = ". $c[utitel]"; }

$buch=buch($c[literatur_ID], $l);

$selektd = "select l_mono from literatur where ID=$c[literatur_ID]";
$suched = mysql_query($selektd);
$d = mysql_fetch_assoc($suched);

if ($l==1 and $c[online])
{$online = "Onlineversion unter <a href=\"$c[online]\" target=\"_blank\">$c[online]</a>";}
else {$online="";}

//Zeitschrift
if ($d[l_mono]==2)
{$t_aufsatz="$autorc: $c[titel]$untertitel, in: $buch, S. $c[seiten]. $online";}

// Sammelband
if ($d[l_mono]==3)
{$t_aufsatz="$autorc: $c[titel]$untertitel, in: $buch $c[nr] ($c[jahr]) S. $c[seiten]. $online";}

return $t_aufsatz;
}

function datum($_dat) {
// Wandelt timestamp String in Datum und Uhrzeit um.
$datum=intval(substr($_dat,6,2)).".".intval(substr($_dat,4,2)).".".substr($_dat,0,4)." um ".substr($_dat,8,2).":".substr($_dat,10,2).":".substr($_dat,12,2);
return $datum;
}


?>

Leider habe ich ziemlich bis gar keinen Plan, bin daher auf die Hilfe von Fachleuten angewiesen. Die DB läuft übrigens bei Hetzner, falls das evtl. von Interesse ist...

Vielen Dank im Voraus!
 
Hi,
probier es mal so
PHP:
$selekt = "select ID, p_vorname, p_nachname, p_veroeff from person where ID = '$person'";
mfg Splater
EDIT: In Zukunft PHP Code bitte auch in "[ PHP][ /PHP]" schrieben, schaut einfach besser aus ;)
EDIT: mysql_query(xxx) OR die (mysql_error()); liefert dir meistens schon das Problem ;)
 
Zuletzt bearbeitet:
mir wurde eine HP mit MySQL-Datenbank übertragen zur Wartung[...]Leider habe ich ziemlich bis gar keinen Plan, bin daher auf die Hilfe von Fachleuten angewiesen.
Warum man jemandem ohne Plan eine Wartung überträgt muss ich jetzt aber nicht verstehen oder?

Ich sehe in deinem Code nirgends ein mysql_connect. Hast du das "wegzensiert" oder wird die funktion nur included und das connect steht in der inkludierenden Datei?

P.S. Schreib den Code bitte das nächste mal in [code=php][/code]
 
Sorry, mein Fehler. Werde demnächst das PHP-tag setzen.

Zur Frage der Inclusion: ja, die function.php wird nur reingeschleift, daher kein connect.

Warum ich das mache und von SQL keine Ahnung habe... Lange Geschichte, die HP und die DB hat mal ein Informatiker angefangen, der ziemlich auf PHP/SQL gesetzt hat. Der hat sich beruflich verändert, danach hat das jemand übernommen, der es nur notverwaltet und dann wurde mir das angetragen, da ich zumindest HTML und CSS konnte. So kam ich zu dieser Datenbank...

Euer Tip hat übrigens super geholfen, jetzt läuft es! Vielen Dank!
 
Zurück