Autor Zpráva
Nosnx
Profil
Jelikož se mi zde dostalo pomoci ohledně kodování emailu, který jsem řešil o pár řádku níže, zkusím poprosit o pomoc ještě jednou..

Má problém s editací postnutých novinek. Potřebuji umožnit adminovi webu měnit dodatečně obsah novinky, kterou postnul na webu. Do jisté míry mi to funguje, novinky vypíšu z databáze, přes ikonku edit se dostanu do "editoru" a tady už je problém, do "editoru" se mi nepřenese žádný text.. i když tozlišování id novinky funguje (dle šedého stavového řádku v chromu dole vlevo, se id mění po přejetí myši)..snad mne chápete... zkoušel jsem proměnou vypsat, ale je prázdná..

Dokázal by my někdo pomoci?

Tady je script výpisu novinek:
<?php
include ("zahlavi.php");



$sql="SELECT *,DATE_FORMAT(datum,'%e.%c.%Y | %H:%i:%s') AS datum 
        FROM aktuality 
        ORDER BY id_aktualita DESC";

      
  if ($vysledek = mysql_query("$sql")) {
  while ($radek = mysql_fetch_array ($vysledek)) { 
   
      echo  "<div class='nadpisaktualita'>".$radek['nadpis']."<a href='delete.php?id=".$radek['id_aktualita']."'title='Odstranit záznam' onClick=\"if(!confirm('Opravdu chcete smazat aktualitu č:$radek[id_aktualita]?')) return false;\"><img src='images/delete.png' width='15px'></a>
      
      <a href='update_aktualita.php?id=".$radek['id_aktualita']."'title='Aktualizovat záznam' onClick=\"if(!confirm('Opravdu chcete aktualizovat záznam č:$radek[id_aktualita]?')) return false;\"><img src='../twa/upload/update icon.gif'></a></div>";
      echo "<div class='img'><img src='obrazky_aktualita/".$radek['obrazek']."' width = '80'></div>";
      echo  "<div class='textaktualita'>".$radek['text']."</div>";
      echo  "<div class='datumaktualita'>Vloženo: ".$radek['datum']."</div>";
             
}
}


include ("zapati.php");
?>
A tady je samotný edit:
<?php
  
    include ("zahlavi.php");
    
  if (isset($_GET['id_aktualita'])) {
     
        $sql = "SELECT nadpis, text FROM aktuality
                WHERE id_aktualita=$_GET[id_aktualita]";
     
     if ($vysledek = mysql_query("$sql")) {          
          $nadpis=mysql_result($vysledek,0,'nadpis');
          $text=mysql_result($vysledek,0,'text');
            }else{
             echo mysql_error();
             }    
             }
    
  if(isset($_POST['submit'])){
        $sql="UPDATE aktuality
              SET nadpis='$_POST[nadpis]', text='$_POST[text]'
              WHERE id_aktualita=$_POST[id_aktualita]
              LIMIT 1";
    
    if ($vysledek = mysql_query("$sql")) {
             echo "Záznam byl uspěšně aktualizován </br>";
             echo "<a href='vyberovy_dotaz.php'>Zpět</a>";
            /**header("location:editace_aktualit.php");**/
            }else{
            echo mysql_error();
 
 }
 }
?>
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" style="margin-left:5px; margin-top:10px;">
<p class="nadpispraveokno">Upravit aktualitu</p>
<table border="0">
<tr><td>Nadpis: </td><td> <input type="text" name="nadpis" value="<?php echo $nadpis;?>" style="width:28em;">
                          <input type="hidden" value="<?php echo $_GET['id_aktualita'];?>" name="id_aktualita"/></td></tr>
<tr><td>Text: </td><td> <textarea name="text" style="width:28em;" rows="10" id="text"></textarea>
                        <input type="hidden" value="<?php echo $text;?>" name="text"/></td></tr></tr> 

<tr><td width="50"> </td><td align="right"> <input type="submit" value="Uprav" name="submit"></td></tr>
 
</table>
   
</form>
<?php
include ("zapati.php");
?>

Když zkusím formulář vyplnit a odeslat, ukazuje to chybu:
"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 'LIMIT 1' at line 4"

Díky za rady, popřípadě typy, kde co upravit...
mimochodec
Profil
Co z toho výše uvedeného je ten řádek 4, který je špatně?
Tori
Profil
Nosnx:
dle šedého stavového řádku v chromu dole vlevo, se id mění po přejetí myši
A zrovna tam jste si mohl všimnout, že se mění hodnota atributu id (viz ř.16 v prvním kódu), kdežto ve skriptu pro editaci očekáváte $_GET['id_aktuality']. Z toho vzniknou všechny další chyby - skryté pole formuláře zůstane prázdné a do SQL dotazu na ř.21 nepřijde žádná hodnota.
Data, která vkládáte do DB, ve vlastním zájmu escapujte (mysql_real_escape_string pro řetězce, např. intval pro celá čísla). Ve všech voláních mysql_query je zbytečné dávat proměnnou do uvozovek.
Nosnx
Profil
Nevšiml jsem jsi z toho důvodu, že i mazání příspěvku to funguje... ale děkuji, funguje to, ale tak napul.. Nadpis se mi načte, ale text ne-e, pokud ale změním text z <textarea> na <input type="text"> tak se načte i text...

Napadá Vás něco?
Nosnx
Profil
Vyřešeno, jsem to ale vůl :D :D Díky za rady!!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: