Autor | Zpráva | ||
---|---|---|---|
Senky Profil |
#1 · Zasláno: 22. 6. 2009, 12:13:28
Zdravím.
Pokúšam sa vytvoriť vymazanie viacerých tabuliek naraz cez checkboxy. Vytvoril som toto: if($_POST['delete']){ mysql_query("DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")", $con); Header("Location: index.php"); } A môj form vyzerá takto: (je tam while, ktoré funguje - skontorlované v zdrojovom kóde) echo "<form action='delete.php' method='post'>"; ... echo "<input type='checkbox' value='".$rows['id']."'>"; ... echo "<input type='submit' value='Vymazať'>"; echo "<input type='hidden' value='delete'>"; echo "</form>"; A čo to spraví? - nič, proste ma to vráti späť na index.php, ale všetky riadky v databáze ostali, keďže ich tam vidieť opäť... Vie niekto kde je chyba? Ďakujem... |
||
Majkl578 Profil |
#2 · Zasláno: 22. 6. 2009, 12:30:56
to se nedivim kdyz _POST['checkboxes'] neexistuje
|
||
Senky Profil |
#3 · Zasláno: 22. 6. 2009, 12:38:23
Ja som to našiel na nete akože to sú všetky zaškrtnuté checkboxy... tak neviem...
|
||
Akacko Profil |
#4 · Zasláno: 22. 6. 2009, 12:42:52 · Upravil/a: Akacko
Senky
Ty checkboxy nemají atribut name. Nejsříve jím ho musíš přidat a udělat z něj pole. echo "<input type='checkbox' name='checkboxes[]' value='".$rows['id']."'>"; Potom ti to bude fungovat. BTW, kde jsi našel takový blábol? |
||
Senky Profil |
#5 · Zasláno: 22. 6. 2009, 12:51:10
Pridal som tam name='checkboxes[]' , ale stále je to o tom istom....neviem fakt kde je chyba...
Akacko http://osdir.com/ml/php.database/2003-02/msg00550.html |
||
AM_ Profil |
#6 · Zasláno: 22. 6. 2009, 12:54:48
zkoušel jsi si ten dotaz vypsat a spustit samostatně třeba v myadminu?
|
||
Akacko Profil |
#7 · Zasláno: 22. 6. 2009, 12:56:02 · Upravil/a: Akacko
Senky
Možná proto, že tam nemáš input s názvem delete. if($_POST['delete']) edit: Na té adrese to píšou dobře. Jen sis to špatně přeložil. |
||
Senky Profil |
#8 · Zasláno: 22. 6. 2009, 13:18:02
Uf no tak ja som tam pridal echo "<input type='hidden' value='delete' name='delete'>"; (Akacko dik za upozornenie). No a taktiež som tam pridal or die(mysql_error()) a čo nevidím:
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 ')' at line 1 Avšak kde je potom chyba? mysql_query("DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")") or die(mysql_error()); |
||
Akacko Profil |
#9 · Zasláno: 22. 6. 2009, 13:50:11
Senky
Zkus toto: $sql = mysql_query("DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")"); echo $sql; Podívej se co z toho vznikne a měl bys vidět v čem je chyba. |
||
AM_ Profil |
#10 · Zasláno: 22. 6. 2009, 14:59:54
Akacko
zřejmě jsi měl na mysli mysql_query($sql = "DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")"); echo $sql; v tvém případě to nevypíše nic ($sql bude false) |
||
Akacko Profil |
#11 · Zasláno: 22. 6. 2009, 15:03:41
AM_
Jo tohle jsem myslel :) dík za opravu. |
||
Senky Profil |
#12 · Zasláno: 22. 6. 2009, 15:11:58
„mysql_query($sql = "DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")");
echo $sql;“ Vypíše mi to DELETE FROM notes WHERE id IN (). Čiže sql by to aj rado vykonalo, ale nemá čo. Ja však odosielaniu checkboxov do php skoro vôbec nerozumiem, tak kde je potom chyba? |
||
Akacko Profil |
#13 · Zasláno: 22. 6. 2009, 15:19:47
Senky
Zaznačil jsi před odesláním formuláře alespoň jeden checkbox? Tady je funkční kód, co jsem poskládal z ústřižků co jsi sem poslal. Tak to podle něj udělej. <?php if($_POST['send']) { echo "DELETE FROM notes WHERE id IN (".implode(',',$_POST['checkboxes']).")"; } ?> <form action='' method='post'> <input type='checkbox' name="checkboxes[]" value='a'> <input type='checkbox' name="checkboxes[]" value='b'> <input type='submit' name="send" value='Vymazať'> </form> |
||
Senky Profil |
#14 · Zasláno: 22. 6. 2009, 15:29:19
Už som si našiel chybu. Skúšal som aj niečo iné, ako ste mi tu písali, a nechal som v name namiesto checkboxes[] checkID[].Zmenil som to, a teraz som skúsil toto:
if($_POST['delete']){ mysql_query($sql = "DELETE FROM notes WHERE id IN(".implode(',',$_POST['checkboxes']).");"); echo $sql; } A ono mi to vypísalo (pri zaškrtnutí jedného checkboxu) DELETE FROM notes WHERE id IN(11); A taktiež som mal zlý názov tabuľky (hupsssss) a už to šľape ako má.... Ďakujem Vám Akacko a AM_ za pomoc. Vážne sa hanbím za svoju hlúpu chybu. Už to nechám tak, som rád že to funguje...Ďakujem mnoho krát... |
||
Časová prodleva: 15 let
|
0