Autor | Zpráva | ||
---|---|---|---|
arcadosi Profil |
#1 · Zasláno: 3. 5. 2006, 16:24:13
endif;
if(isset($_GET[db]) AND isset($_GET[table]) AND $_GET[made] == "del_row" AND isset($_GET[line])): $db = $_GET[db]; $table = $_GET[table]; $line = $_GET[line]; mysql_select_db($db); $query = mysql_query("DELETE FROM $table LIMIT $line,1"); if($query){ echo "Riadok `$line` z tabulky `$table` na databaze `$db` bol zmazany."; } else { echo "Riadok `$line` sa z tabulky `$table` na databaze `$db` nepodarilo zmazat!"; } endif; Podmienka sa splna, setke premenne su nastavene, ale sa to nemaze, preco ? podmienku WHERE neviem pouzit, tak davam tam limit, moze sa pouzivat limit pri odstranovani zaznamu ? Dakujem |
||
WertriK Profil * |
#2 · Zasláno: 3. 5. 2006, 17:09:23
Limit se muze u mazani muze pouzit, ale vetsinou se pouziva limit jen jako pojistka, kdyby podmince vyhovovaly 2 udaje.
Mazani z db bez podminky [WHERE] mi prijde docela riskantni, nemas treba u kazdeho udaje id ? To se tam dava prave proto aby to ulehcilo prave operace s daty. Jinak, prenaset nazev tabulky odkazem je jeste riskantnejsi nez mazat neco bez podminky. |
||
djlj Profil |
#3 · Zasláno: 3. 5. 2006, 17:32:40
Myslím, že to bude fungovat bez té jedničky.
mysql_query("DELETE FROM $table LIMIT $line"); Jo a přenášení názvu tabulky v adrese je fakt pěkná hovadina :). |
||
arcadosi Profil |
#4 · Zasláno: 3. 5. 2006, 17:36:23
Noo tam ide o to, ze to je kus dlhsie, no a mne to zistuje ake DB a tabulky su v databaze potom ked kliknem na tabulku, tak mi zobrazi jej obsah, no a ono si to zistuje nazvy policok a zistuje ich hodnoty, a tak. takze neviem, ze ci tam ID bude alebo nebude a nemozem davat podmienky kedze neviem, ze ci tam bude ID Meno alebo ine.
sak pribalim aj cely kod tha couz: <?php mysql_connect(XXX, XXX, XXX); if(empty($_GET[db]) AND empty($_GET[table])): $view_db = mysql_list_dbs(); $num_dbs = mysql_num_rows($view_db); for($i=0; $i<$num_dbs; $i++){ $name_db = mysql_tablename($view_db, $i); echo "$name_db<br>"; $view_table = mysql_list_tables($name_db); $num_tables = mysql_num_rows($view_table); for($j=0; $j<$num_tables; $j++){ $name_table = mysql_tablename($view_table, $j); echo " -$name_table <span class=\"del\"> <a href=\"" . $_SERVER['PHP_SELF'] . "?db=$name_db&table=$name_table&made=del\" target=\"_self\">DELETE</a> </span> | <span class=\"view\"> <a href=\"" . $_SERVER['PHP_SELF'] . "?db=$name_db&table=$name_table&made=view\" target=\"_self\">VIEW</a> </span> <br>"; } } endif; if(isset($_GET[db]) AND isset($_GET[table]) AND $_GET[made] == "del"): $db = $_GET[db]; $table = $_GET[table]; mysql_select_db($db); $query = mysql_query("DROP TABLE `$table`"); if($query){ echo "Tabulka `$table` v databaze `$db` bola zmazana."; } else { echo "Tabulka `$table` v databaze `$db` nebola zmazana!"; } endif; if(isset($_GET[db]) AND isset($_GET[table]) AND $_GET[made] == "view"): $db = $_GET[db]; $table = $_GET[table]; mysql_select_db($db); $query = mysql_query("SELECT * FROM $table"); $num_fields = mysql_num_fields($query); $num_rows = mysql_num_rows($query); echo " <table width=\"100%\"> <tr> "; for($i=0; $i<$num_fields; $i++){ $array = mysql_fetch_field($query); echo "<td>"; echo $array->name; echo "</td>"; } echo "</tr>"; for($j=0; $j<$num_rows; $j++){ $field = mysql_fetch_row($query); if($j%2 == 0){ echo "<tr style=\"background-color:#FFFFFF; color: #000000;\">"; } else { echo "<tr>"; } for($k=0; $k<$num_fields; $k++){ echo " <td> <a href=\"" . $_SERVER['PHP_SELF'] . "?db=$db&table=$table&made=del_row&line=$j\" target=\"_self\"> $field[$k] </a> </td>"; } echo "</tr>"; } echo " </table> "; endif; if(isset($_GET[db]) AND isset($_GET[table]) AND $_GET[made] == "del_row" AND isset($_GET[line])): $db = $_GET[db]; $table = $_GET[table]; $line = $_GET[line]; mysql_select_db($db); $query = mysql_query("DELETE FROM $table LIMIT $line,1"); if($query){ echo "Riadok `$line` z tabulky `$table` na databaze `$db` bol zmazany."; } else { echo "Riadok `$line` sa z tabulky `$table` na databaze `$db` nepodarilo zmazat!"; } endif; ?> |
||
arcadosi Profil |
#5 · Zasláno: 3. 5. 2006, 20:30:29
djlj
tomu limitu musim uviest oba hodnoty, lebo ho vlastne pouzivam ako podmienku, takze ak by som to spravil po tvojom, tak by mi to odstranilo sic napriklad 3 riadky, ale od prveho, lenze mne treba aby od napriklad druheho odstranilo len 1 riadok, cize ten druhy. |
||
arcadosi Profil |
#6 · Zasláno: 3. 5. 2006, 20:31:42
hej a este by ma zajimalo ako by ste to vi riesili, ak to nemam predavat cez URL, kedze to je poprve len premna a takto sa to roby aj v phpmyadmine.
|
||
djlj Profil |
#7 · Zasláno: 3. 5. 2006, 20:35:32
arcadosi
Jak už někdo napsal dřívě, použij WHERE, viz. manuál. |
||
arcadosi Profil |
#8 · Zasláno: 4. 5. 2006, 14:47:44
si nepochopil, ze nemozem pouzit where, lebo by som musel zistovat mena poli a ich hodnoty ?!
zbytocna praca, pytam sa, ze ci sa to da aj cez LIMIT a ak ano, tak preco mi to neide. |
||
Hugo Profil |
#9 · Zasláno: 4. 5. 2006, 14:58:19
arcadosi
To neni zbytecna prace. Pokud budes mazat pouze s pouzitim limit, tak mas dost velkou pravdepodobnost, ze smazes neco jineho. Nekdo totiz muze ve stejnou dobu do tabulky zasahnout. |
||
arcadosi Profil |
#10 · Zasláno: 5. 5. 2006, 13:27:36
nie, nove zaznamy sa radia na koniec, pretoze nedavam zoradenie, takze tie nove zaznamy nezmazem a tie stare zase odstranim dobre, kedze sa nebudu pohybovat.
|
||
Hugo Profil |
#11 · Zasláno: 5. 5. 2006, 13:42:15
arcadosi
Komu neni, ... |
||
arcadosi Profil |
#12 · Zasláno: 6. 5. 2006, 10:10:28
neviem to spravit :D
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0