| Autor | Zpráva | ||
|---|---|---|---|
| n5ver Profil |
#1 · Zasláno: 28. 6. 2010, 23:03:54
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 |
#2 · Zasláno: 28. 6. 2010, 23:05:44
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 |
#3 · Zasláno: 28. 6. 2010, 23:08:40
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 |
#4 · Zasláno: 28. 6. 2010, 23:10:20
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 |
#5 · Zasláno: 28. 6. 2010, 23:14:52
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 |
#6 · Zasláno: 28. 6. 2010, 23:18:03
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 |
#8 · Zasláno: 28. 6. 2010, 23:43:15
n5ver:
vybraný option, resp. jeho hodnota je v proměnné $_POST/$_GET['name_SELECTu'] nikoliv name optionu. |
||
| AM_ Profil |
#9 · Zasláno: 29. 6. 2010, 00:05:19
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 |
#10 · Zasláno: 29. 6. 2010, 00:24:51
AM:
Ještě jsem to nikdy nepotřeboval. Co dělám špatně? |
||
| AM_ Profil |
#11 · Zasláno: 29. 6. 2010, 11:02:04
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 |
#12 · Zasláno: 29. 6. 2010, 14:29:14
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 * |
#14 · Zasláno: 29. 6. 2010, 15:28:06
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 |
#16 · Zasláno: 30. 6. 2010, 00:29:00
echo "<option value=\"".$Vypis['id']."\">#".$Vypis['id']." ".$Vypis['jmeno']."</option>"; |
||
| n5ver Profil |
Vřešeno děkuji všem.
|
||
|
Časová prodleva: 15 let
|
|||
0