Autor Zpráva
arcadosi
Profil
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 *
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
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
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
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
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
arcadosi
Jak už někdo napsal dřívě, použij WHERE, viz. manuál.
arcadosi
Profil
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
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
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
arcadosi

Komu neni, ...
arcadosi
Profil
neviem to spravit :D
Toto téma je uzamčeno. Odpověď nelze zaslat.