capricorn
14.10.2007, 09:55:09
Dlaczego to nie dziala?
chce skasowac z tabeli 'klasa' rekordy pod dwoma warunkami.. czyli z operatorem logicznym AND.. i niestety nie dziala
$strony =mysql_query("Select * from klasa ORDER BY najlepsi DESC limit 2");
while ($adres_rekord=mysql_fetch_array($strony)) {
mysql_query ("DELETE FROM klasa WHERE klasa_id != ".$adres_rekord['klasa_id']." AND najlepsi=1");
}
cornholio666
14.10.2007, 10:14:21
Cytat
WHERE klasa_id != ".$adres_rekord['klasa_id']."
Co chcesz tym uzyskac ? wykasowac wszystkich innych ktorych ID nie jest rowne $adres_rekord['klasa_id'] ?
cornholio666
14.10.2007, 11:58:32
Po pierwszym przejsciu pętli wykasowalo by ci wszytkie oprcz tego pierwszego podanego.
Pobierz wszystkie ID które chcesz skasowaci wtedy :
<?php
mysql_query ("DELETE FROM klasa WHERE klasa_id = ".$adres_rekord['klasa_id']." AND najlepsi=1"); ?>
capricorn
14.10.2007, 13:10:35
niestety nie ma jak pobraz tych ID
poniewaz:
1. ukladam rekordy w tabeli wg 'ocena' limit wyswietlonych wynikow ograniczam do 2
2. dwum rekordom ktore mam wyswietlone nadaje wartosc 1 w kolumnie 'najlepsi'
3. kolumna najlepsi domyslnie ma wartosc 0, wiec wszystkei pozostale maja wartosc 0
4. jezeli uczen wypadnie z dwojki najlepszych, a na jego miejsce wskoczy inny, to bede mial trzech uczniow z wartoscia 1 w kolumnie 'najlepsi' .. i tego trzeciego chce wlasnie usowac .. wiec jak to zrobic?