Potřebuji poradit s triviální věcí
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
mam problém s funkcí mazání a nemužu na to přijít ....poradí někdo? <? ..........................jine funkce ................... ........................ //mazani radku z tabulky if($smazat): DELETE FROM ($co) where id="($pol)"; mysql_db_query($db); endif; ..........................pokracovani skriptu .......................................... ................................... ?> //formular pro zadani mazane hodnoty <form action="admin.php" metod="post"> <tr><td>od: </td> <td><select name="co"> <option value=autoklima>Auto klimatizace</option> <option value=chlazeni>Chlazeni</option> <option value=transpchlaz>Transp.chlazeni</option> <option value=klima>Klimatizace</option><? echo stripslashes ($co);?> //vyber tabulky mySqL <input type= text name="smazat" slize="5" value=<? echo stripslashes ($pol);?>> //cislo mazaneho Id <input type= submit value="smazat"> <input type= hidden name "smazat" value> </tr> </form> hlasi me to chybu hned u DELETE FROM :-((((
-
DELETE FROM je SQL ne php.. takze je treba to dat do textove promenne a predat do toho mysql_query() viz dokumentace php...
-
soryy sem na tohle tupej šlo by to takhle ? tet nejsem u toho správnýho kompu //mazani radku z tabulky if($smazat): mysql_db_query($db,"DELETE FROM ($co) where ($pol)"); endif; //formular pro zadani mazane hodnoty
-
nemas tam mysql_connect() a mysql_select_db()
-
Jo to je o pár řádků vejš
-
Vip, tak takhle by to šlo... jestli to nehlásí chybu, tak je to OK, ne?
-
Chybu to nehlásí, ale dělá to ouplný nic :-DDD fakt nevim večer sem prasknu celej zdroják třeba na to někdo příjde
-
no, základní myšlenka je takováto: připojit db (mysql_connect()) zvolit db (mysql_select_db()) spustit SQL dotaz a nechat si vrátit výsledek ($vysledek = mysql_query()) z výsledku si vypsat, co jsem to vlastne dostal ( while ( $row = mysql_fetch_array($vysledek) ) { echo "prvni sloupec: ".$row[0]; echo "slouec jmeno: ".$row['jmeno']; } nebo, pokud máš můj krásný objekt: $db = new MySQL_db_driver("host=localhost dbname=moje user=marek password=marek"); $db->db_exec('select * from x'); while ( $row = $db->fetch() ) { .... # stejne. }
-
1) trochu me tam znervoznuje ta kupa zavorek 2) $co znamena nazev tabulky? takze: if($smazat): mysql_db_query($db,"DELETE FROM $tabulka WHERE ($pol)"); endif;
-
mysql_query("DELETE FROM $tabulka WHERE id='$pol'"); ?
-
David: Fce mysql_db_query() zde na WZ nefunguje. Použij to, co píše OndraSter.
-
sem to udelal jinak a už mě to funguje ale díky pánové
-
ak by ste mali $smazat=$_REQUEST["s"]; $pol=$_REQUEST["pol"]; if($smazat){ mysql_query("DELETE FROM $tabulka WHERE (id = $pol)"); } tak ked niekto by vam nikto isiel na stranku.. .php?s=1&pol=1 or 1=1 tak by vam to vycistilo celu tabulku (SQL Injection) spravnejsie je mysql_query("DELETE FROM $tabulka WHERE (id = '$pol')"); aj ked tu si treba dat pozor na to, co je vlastne $pol, z kade to ide, a ci to ma addslashes(). npr. ak niekto urobi skript $pol=stripslashes($_REQUEST["pol"]); tak vam ani toto nepomoze, lebo .. .php?s=1&pol=1' or 1=1)/* toto vam tiez vymaze celu tabulku ale ani automaticke addslashes, zo vstupu vam nepomoze, keby ste chceli smazat npr. user agent do db. mysql_query("DELETE FROM $tabulka WHERE (id = '".$_REQUEST['HTTP_USER_AGENT']."')"); lebo ako vsetci samozrejme viete, user agent chodi cez poziadavku na stranku.. npr. GET / HTTP/1.1 host: localhost User-Agent: 1' or 1=1)/* takze>> stale pouzivajte ' nikdy nepouzivajte stripslashes (iba na vystup) prip. este kontrolujte ci to obsahuje ', a pouzite na to addslashes()
-
- pokud chci mazat jen jeden radek z tabulky, vzdy na konec dotazu dam "LIMIT 1". To je tak pro jistotu,uz mi to prakrat zachranilo tabulku - staci jedna blba prehlidnuta chyba a bylo by vsechno v tahu. - kdyz pouzivam promenny zvenci, tak vzdycky pouzivam $_GET['promenna'] a nebo $_POST['promenna'], nikdy ne globalni promenne - kvuli bezpecnosti. - pokud mazu data z tabulky, nikdy se neridim jen daty z formulare a podobnych. To se da velmi snadno zneuzit. Vzdy se snazim overit, jestli ten dotaz je od uzivatele "opravneny".