• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit MySQL Ausgabe in PHP

  • Ersteller Ersteller matibaski
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
M

matibaski

Guest
Moin!
Ich habe folgendes Problem:
Ich habe in eine Datenbanktabelle Daten zu einem Download eingetragen mit meinem Tool. Danach ein zweites.

Nun habe ich es so gemacht, dass ich diese auch wieder verarbeiten kann, wenn ich einen Fehler korigieren will, oder so.

Nun ist es so, dass ich die Inhalte der Spalten in Textfelder ausgebe.
Nun ist es folgendes Problem/folgender Haken:
Der Code, zum Ausgeben sieht so aus:
PHP:
 $edit = "SELECT
              ID,
              Name,
              Url,
              Inhalt
          FROM
              downloads
          ORDER BY
              ID DESC;
         ";

 $editresult = mysql_query($edit) OR die(mysql_error());
 
  if(mysql_num_rows($editresult))
  {
   $aendern = mysql_fetch_assoc($editresult);

   echo'
    <form name="submit" action="admin.php?site=edit&id='.$aendern['ID'].'&edit=true" method="post">
    <h2>Inhalt ändern:</h2>
    Name:<br />
    <input type="text" name="name" value="'.$aendern['Name'].'" /><br />
    <br />
   URL:<br />
   <input type="text" name="url" value="'.$aendern['Url'].'" /><br />
   <br />
   <br />
   Inhalt:<br />
   <textarea name="inhalt" rows="10" cols="40">'.$aendern['Inhalt'].'</textarea><br />
   <br />
   <br />
   <input type="submit" name="submit" value="Ändern" />
   </form>';
    if($_GET['edit'] == 'true')
    {
     $edit = "UPDATE
                  downloads
              SET
                  Name = '" . $_REQUEST['name'] . "',
                  Url = '" . $_REQUEST['url'] . "',
                  Inhalt = '" . $_REQUEST['inhalt'] . "'
              WHERE
                  ID = '" . $_GET['id'] . "';
             ";
        
     mysql_query($edit) OR die(mysql_error());
     echo'Der Eintrag mit der ID ' . $_REQUEST['id'] . ' wurde erfolgreich geändert';
     header("Location: admin.php?site=edit&id=".$aendern['ID']);
    }
   }
Es gibt immer die Inhalte ($row[]) von dem obersten Inhalt aus. Wie bringe ich es hin, das die Inhalte ausgegeben werden, die von ID 7 z.B. sind, wenn ID 10 zuoberst ist, dann gibt es, egal welchen Link ich anklicke, immer den obersten aus Bei mir mit der ID 10.

Also es soll so sein: Ich klicke auf einen Namen, und dann erscheint oben id=7 zum Beispiel.
Nun sollen die Inhalte eingefügt werden, die die ID Nummer 7 haben.

Wie bringe ich das hin?

Ich hoffe, ihr vertseht, wa ich meine.



MfG, matibaski
 
Code:
$edit = "SELECT
              ID,
              Name,
              Url,
              Inhalt
          FROM
              downloads
          ORDER BY
              ID DESC
          [b]WHERE
              ID='$_GET[ID]'
           LIMIT 1[/b];
         ";

$editqry = mysql_query($edit);

// mysql_num_rows-Abfrage ist unsinnig
$fetch = mysql_fetch_assoc($editqry);

// für mehrere Einträge (kein Limit und keine festgelegte ID)
while($fetch = mysql_fetch_assoc($editqry)) {
// ausgabe
}
 
Mit
PHP:
WHERE
    ID = '".$_GET['id']."'
habe ich es auch schon ausprobiert, doch da erscheint ein Error:
MySQL Error schrieb:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID='' LIMIT 1' at line 10
Also irgendwie funzt das net.

Das mit ID = '$_GET[id]'
ging auch nicht, da_loki.


MfG, matibaski
 
Mit
PHP:
WHERE
    ID = '".$_GET['id']."'
habe ich es auch schon ausprobiert, doch da erscheint ein Error:

Also irgendwie funzt das net.

Das mit ID = '$_GET[id]'
ging auch nicht, da_loki.


MfG, matibaski
mach mal nen echo $sql; (also das query) und poste die ausgabe.
 
Meinst du so?
PHP:
    if($_GET['edit'] == 'true')
    {
     $edit = "UPDATE
                  downloads
              SET
                  Name = '" . $_REQUEST['name'] . "',
                  Url = '" . $_REQUEST['url'] . "',
                  Inhalt = '" . $_REQUEST['inhalt'] . "'
              WHERE
                  ID = '" . $_GET['id'] . "';
             ";
     echo $edit;
     
    }
Bei diesem kommt das raus:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID='' LIMIT 1' at line 10
Oder so?
PHP:
    if($_GET['edit'] == 'true')
    {
     $edit = "UPDATE
                  downloads
              SET
                  Name = '" . $_REQUEST['name'] . "',
                  Url = '" . $_REQUEST['url'] . "',
                  Inhalt = '" . $_REQUEST['inhalt'] . "'
              WHERE
                  ID = '" . $_GET['id'] . "';
             ";
     $sql = mysql_query($edit) OR die(mysql_error());
     echo $sql;
     
    }
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID='' LIMIT 1' at line 10
Das kommt bei dem zweiten raus. Eigendlich dasselbe ^^

Wieso denn?



MfG, matibaski
 
Der error sagt, dass die Variable $_GET['id'] nicht gesetzt ist!

Du kannst da mal nen $_REQUEST draus machen, damit du auch POST-Variablen abfängst.
Und du musst natürlich die Variable "id" auch mit übergeben...
 
Habe nun ein wenig gespielt, und nun den Fehler gefunden.
Ich hätte ORDER BY weglassen sollen.
Nun geht es einwandfrei.


MfG,matibaski
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben