Autor | Zpráva | ||
---|---|---|---|
hava Profil * |
#1 · Zasláno: 22. 10. 2010, 12:43:39
Mám tokovouto proměnou na smazání dat:
$odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?smazat=yes"; $odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?sezona=".$zaznam["sezona"]; Soubor kam to odkazuje odstranit_fotogalerie-muzi-A-09-10.php: <?php include "config.php"; // zde je include souboru s konstantami $sezona=$_GET["sezona"]; $vysledek=mysql_query("delete from foto where sezona = $sezona"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/fotogalerie-muzi-A.php'; Header("Location:".$path); exit; ?> bohužel mi to ale nic nesmaže když si zkusím dát do souboru exit ($sezona); Mužete mi poradit kde mám chybu či jak to jinak vyřešit? Děkuji |
||
Keeehi Profil |
#2 · Zasláno: 22. 10. 2010, 13:01:15
Jakého typu je sloupec SEZONA?
Jak vypadá zdrojový kód odkazu pro smazání vypsaný na stránce? |
||
AM_ Profil |
#3 · Zasláno: 22. 10. 2010, 17:43:51
hava:
> $odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?smazat=yes"; > $odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?sezona=".$zaznam["sezona"]; to je nějaký nesmysl, na prvním řádku si uložíš do proměnné jakýsi odkaz a na dalším řádku si ho přepíšeš jiným odkazem. Pokud to máš takhle za sebou, ten první řádek jako by tam nebyl. šanci má fungovat stejně jedině ten druhý odkaz, ten první je holý nesmysl, ani nějak nevím, k čemu ho tam máš. „Mám tokovouto proměnou na smazání dat:“ proměnná není na smazání, ale na ukládání dat :D máš skript, který ti s určitými parametry má něco smazat z databáze, a ty parametry se předají v odkazu. ten odkaz máš uložený v proměnné, to je hezké, ale je to celkem jedno. Podívej se do HTML zdrojáku stránky, v jaké podobě se tam ten odkaz vyplivne (předpokládám je někde v <a href="...">), jestli tam není nějaká tečka navíc, ale opravdu netuším, kde by se tam vzala. jinak měl bys proměnnou $sezona ošetřit, pokud je to číslo tak to nějak pojistit (třeba přetypování na (int)), pokud string tak prohnat mysql_real_escape_string(). |
||
hava Profil * |
#4 · Zasláno: 23. 10. 2010, 09:19:00
[#2] Keeehisezona je typu VARCHAR
zdrojový k´d pro smazání: <?php include "config.php"; // zde je include souboru s konstantami $sezona=$_GET["sezona"]; $vysledek=mysql_query("delete from foto where sezona = $sezona"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/fotogalerie-muzi-A.php'; Header("Location:".$path); exit; ?> |
||
hava Profil * |
#5 · Zasláno: 23. 10. 2010, 09:21:34
Asi sem napsal špatný ten kód, tak ještě jednou:
$odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?smazat=yes"; $odstranit = "odstranit_fotogalerie-muzi-A-09-10.php?sezona=".$zaznam["sezona"]; echo ("<a href='$odstranit.' class='smazat' onclick='return confirm(\"Potvzením smažete!\")'>Smazat celou sezónu</a>"); |
||
hava Profil * |
#6 · Zasláno: 23. 10. 2010, 09:24:22
[#3] AM
Tak když kouknu do zdrojáku tak tam vidím i tu tečku: <a href='odstranit_fotogalerie-muzi-A-09-10.php?sezona=2009_10.' class='smazat' onclick='return confirm("Potvzením smažete!")'> Mělo by tam být poze to číslo 2009_10 |
||
hava Profil * |
#7 · Zasláno: 23. 10. 2010, 09:30:53
Tak tečka vyřešena byla tady:
...<a href='$odstranit.' class... Ale bohužel mi to pařád nic nesmaže, že bych měl špatně ten dotaz na DB?: <?php include "config.php"; // zde je include souboru s konstantami $sezona=$_GET["sezona"]; $vysledek=mysql_query("delete from foto where sezona = $sezona"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/fotogalerie-muzi-A.php'; Header("Location:".$path); exit; ?> |
||
Alphard Profil |
#8 · Zasláno: 23. 10. 2010, 09:48:15 · Upravil/a: Alphard
Když pracujete s řetězcovou hodnotou, musíte ji obalit apostrofy (a escapovat). Na řádku 4
Pokud to stále nepůjde, upravte 4. řádek na: $vysledek=mysql_query($q="delete from foto where sezona = '$sezona'"); if (!$vysledek) { echo "$q\n<br>".mysql_error(); } a zkopírujte sem, co to vypíše. Moderátor Alphard: Nedělejte z tohoto vlákna chat, nemáme to rádi.
|
||
Časová prodleva: 14 let
|
0