"We are back" « oc.at

Fehler in Skript [PHP]

Plaxi 29.06.2003 - 12:00 576 13
Posts

Plaxi

Bloody Newbie
Registered: Jun 2003
Location: Ö
Posts: 6
Hi @ll
Bekomme folgenden Fehler (beim Aufrufen später folgenden Skriptes):
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .../edit.php on line 12

Das Skript soll die Texte meiner HP bearbeiten, die ich in der MySQL DB mit folgendem Aufbau speichere:
Datenbankname: homepage
Tabellenname: T_Seiten
Feldernamen: F_mainText
F_us1Text

Code:
<?php   
  
$sql=mysql_connect("Dein_Datenbankserver","Dein_Username","Dein_Passwort");   
  
mysql_select_db("Deine_Datenbank",$sql);   
  
$sql_query="SELECT id,F_mainText,F_us1Text FROM T_Seiten WHERE id='$your_id'";   
  
$sql_raw_data=mysql_query($sql_query,$sql);   
  
  
$sql_data=mysql_fetch_array($sql_raw_data);   
  
  
if ($save)  {   
  
    $id=$HTTP_POST_VARS['id'];   
    $F_mainText=$HTTP_POST_VARS['F_mainText'];   
    $F_us1Text=$HTTP_POST_VARS['F_us1Text'];   
  
  
  
    $sql_query="UPDATE T_Seiten SET F_mainText='$F_mainText',F_us1Text='$F_us1Text' WHERE id='$id'";   
  
    $sql_update_status=mysql_query($sql_query,$sql);   
}   
mysql_close($sql);   
?>   
<body>   
  
<form name="form1" method="post" action="<?=$PHP_SELF?>">   
  
<input type="hidden" name="id" value="<?=$sql_data['id']?>">   
  <p> F_mainText:<<br>   
    <textarea name="F_mainText" id="F_mainText"><?=$sql_data['F_mainText']?></textarea>   
  </p>   
  <p>F_us1Text:<<br>   
    <textarea name="F_us1Text" id="F_us1Text"><?=$sql_data['F_us1Text']?></textarea>   
  </p>   
  <p>   
    <input name="save" type="submit" id="save" value="Speichern">   
  </p>   
</form>   
<?php   
  
if ($save) {   
    if ($sql_update_status) {   
        echo "Daten wurden erfolgreich updatet";   
    } else {   
        echo "Beim updaten der Daten ist ein Fehler aufgetreten";   
    }   
}   
?>

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
wenn das query fehlerhaft ist, liefert mysql_query auch keinen brauchbaren returnwert. überprüfe dieses vielleicht separat auf der kommandozeile. (ich schätze, den rest wirst ja schon überprüft haben: ist $your_id gesetzt, stimmen die datenbank anmeldedaten, etc...)

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
und verwende statt $HTTP_POST_VARS['x'] $_POST['x']

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
testweise echo mysql_error() unter der zeile 12 dazu hauen hilft dir da nichts?

Plaxi

Bloody Newbie
Registered: Jun 2003
Location: Ö
Posts: 6
da wird mir auch das angezeigt:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .../edit.php on line 12

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
gib einmal $your_id aus, ob da auch wirklich was drinsteht.

Plaxi

Bloody Newbie
Registered: Jun 2003
Location: Ö
Posts: 6
hm ne da wird nix ausgegeben

HowlingWolf

...
Avatar
Registered: Jul 2001
Location: 2340
Posts: 1317
is scho klar aber du solltest mal zum debuggen den querry ausgeben
damit du siehst ob die variablen richtig gesetzt werden.

Plaxi

Bloody Newbie
Registered: Jun 2003
Location: Ö
Posts: 6
sorry wie was meinst du

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
$sql_query="SELECT id,F_mainText,F_us1Text FROM T_Seiten WHERE id='".$your_id."'";

so sollte der query stimmen

Plaxi

Bloody Newbie
Registered: Jun 2003
Location: Ö
Posts: 6
da kommt nur der eine fehler und unterhalb eben die 2 Felder (textareas).....

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
mach ein ´echo $sql_query´ und prüfe die ausgabe auf syntaktische und symantische korrektheit - zb in dem du das statement direkt in die mysql-shell kopierst. (was ich oben schon geschrieben habe)

alexsb

hmm
Avatar
Registered: Jun 2001
Location: near Graz
Posts: 1566
ausserdem solltest du statt

Code: PHP
$sql_raw_data=mysql_query($sql_query,$sql); 
besser so was schreiben

Code: PHP
$sql_raw_data=mysql_query($sql_query,$sql)
  or die("Query Error"); 

das bricht dir dann das Skript ab wenn mysq_query Fehlerhaft war.
Zum Debuggen geb ich immer im "or die" gleich noch das SQL Statement mit aus.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
@Plaxi:
status update? wenn es funktioniert, oder du eine andere lösung gefunden hast, laß es uns wissen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz