Autor Zpráva
n5ver
Profil
Ahoj prsím kde mám tady 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 1
$Vyber=mysql_query("SELECT `id`, `jmeno`, `obsah` FROM `ep` WHERE `id`=" . $id . " LIMIT 1") or die(mysql_error());
panther
Profil
n5ver:
proměnná id je pravděpodobně prázdná.

Vypiš si ten dotaz, uvidíš, co v něm je.
echo "SELECT `id`, `jmeno`, `obsah` FROM `ep` WHERE `id`=" . $id . " LIMIT 1"
n5ver
Profil
ja mam kod takhle:
  <form action="uprava.php" method="post">
   Výběr epizody (podle pořadí v sérii): <select id="ep" name="ep">
    <option value="1" name="id">1# Space Pilot 3000</option>
    <option value="2" name="id">2# The Series Has Landed</option>
    <option value="3" name="id">3# I, Roommate</option>
    <option value="4" name="id">4# Love's Labours Lost in Space</option>
   </select> <input type="submit" name="sent" value="  Další krok  ">
  </form> 
  
  <?
  require "pripojse.php";
  if (IsSet ($_POST['sent'])){
  $id = $_POST['id'];
  
  $Vyber=mysql_query("SELECT `id`, `jmeno`, `obsah` FROM `ep` WHERE `id` = " . $id . " LIMIT 1") or die(mysql_error());
   while ($Vypis = mysql_fetch_array($Vyber)) {
        echo "
          <h3><b>#".$Vypis['id']." | ".$Vypis['jmeno']."</h3>
          <textarea name=\"obsah\" rows=\"15\" cols=\"30\">".$Vypis['obsah']."</textarea><br>
          <input type=\"submit\" name=\"sent\" value=\"   Pošli   \"/>
          ";
   }
  
  } 
  ?>
panther
Profil
n5ver:
mě je celkem jedno, co tam máš, čti pořádně, co jsem psal. Chyba je v SQL dotazu, tak bylo zbytečné sem dávat další tuny kódu.
xmark
Profil
Ne že by na tom záleželo, ale nevypadá to takhle líp?

$Vyber=mysql_query("SELECT id, jmeno, obsah FROM ep WHERE id=" . $id . " LIMIT 1") or die(mysql_error());


(když to vidím, napadá mě: Nejmenuje se náhodou to tvoje pole ID (velkými)?)
n5ver
Profil
aha no to id neni naplneny. jak ho mam teda naplnit? asi mam neco spatne v option
n5ver
Profil
ja jakoby potrebuju dostat id z oprion kde si vyberu nejakou moznost a to id ma bejt to value ale to je asi spatne tak nebim jak dostat to id z option

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
panther
Profil
n5ver:
vybraný option, resp. jeho hodnota je v proměnné $_POST/$_GET['name_SELECTu'] nikoliv name optionu.
AM_
Profil
xmark:
dávat názvy sloupců do zpětných apostrofů rozhodně není špatný zvyk, sice u takovýchto názvů to není nutné, ale to už je o individuálním přístupu...

n5ver:
optiony nemá ani valný smysl pojmenovávat. jak říká panther, hodnota je v $_POST['ep'] nikoli ['id']
xmark
Profil
AM:
Ještě jsem to nikdy nepotřeboval. Co dělám špatně?
AM_
Profil
xmark:
pokud stavíš takto jednoduché dotazy s identifikátory bez speciálních znaků (pomlčky atd), potřeba to není. Ale když už třeba píšeš nějaký univerzální databázový program, do kterého si uživatelé vepíší vlastní identifikátory, je dobré je mít všechny patřičně uzavřené, aby to fungovalo vždy a všude... Také je někdy problém se shodou s klíčovým slovem, třeba když by se sloupec jmenoval "table", "int", "primary" atd...
xmark
Profil
AM:
Aha, tak pak bych to pochopil. Takovou míru otevřenosti, aby se uživatelovy vstupy projevovaly v názvech tabulek nebo polí, jsem opravdu ještě neřešil a doufám, že řešit ani nebudu.
blaaablaaa
Profil
xmark:
Nemusi jit o slozite systemy, ale napr. chces clanky radit podle dalsiho sloupecku - ja si jej vetsinou pojmenuju order:
SELECT * FROM `tabulka` ORDER BY `order`

funguje, ale
SELECT * FROM tabulka ORDER BY order

samozrejme vyhodi chybu

Moderátor Str4wberry: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Kajman_
Profil *
S novými verzemi mysql se rozšiřuje seznam rezervovaných slov, které je lepší takto obalit, pokud se shodují z názvem sloupce či tabulky.

Když se to tedy preventivně obalí tak, že je jasné, že je to sloupec, klesá šance, že dotaz z tohoto důvodu padne na nějaké budoucí verzi.
n5ver
Profil
tak uz jsem to vyresil, ale nechapu kde mam chybu
u tohodle scriptu mi to píše následující chybu:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
  <?
  require "pripojse.php";
  $Vyber=mysql_query("SELECT id, jmeno, obsah FROM ep ORDER BY id DESC LIMIT 30") or die(mysql_error());
   while ($Vypis = mysql_fetch_array($Vyber)) {
        echo "
          <option value=\"".$Vypis['id']."\">#".$Vypis['id']" ".$Vypis['jmeno']."</option>
          ";
   }
   ?>

Moderátor Str4wberry: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Lamicz
Profil
echo "<option value=\"".$Vypis['id']."\">#".$Vypis['id']." ".$Vypis['jmeno']."</option>";
n5ver
Profil
Vřešeno děkuji všem.

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: