Vinnaren i pepparkakshustävlingen!
2008-10-24, 12:55
  #1
Avstängd
Håller på med en sida där jag kan radera poster, men jag får det inte riktigt att fungera som jag vill, så här ser min kod ut just nu.

$query = "SELECT DISTINCT nr,sms,COUNT(sms) FROM SMS where sms LIKE '%$q%' GROUP BY LENGTH(sms) asc, sms asc";

if ($q) {
$query = "DELETE FROM SMS WHERE sms LIKE '%$q%'";
}

$result = mysql_query($query) or die(mysql_error());

om jag tar bort $q i if och skriver något uppenbart så som "0 == 0" så tar den bort allt i databasen innan jag ens har gjort någon sökning? :S

Blir inte klok på det här.
Citera
2008-10-24, 23:26
  #2
Medlem
Eknebs avatar
Citat:
Ursprungligen postat av abiz
Håller på med en sida där jag kan radera poster, men jag får det inte riktigt att fungera som jag vill, så här ser min kod ut just nu.

$query = "SELECT DISTINCT nr,sms,COUNT(sms) FROM SMS where sms LIKE '%$q%' GROUP BY LENGTH(sms) asc, sms asc";

if ($q) {
$query = "DELETE FROM SMS WHERE sms LIKE '%$q%'";
}

$result = mysql_query($query) or die(mysql_error());

om jag tar bort $q i if och skriver något uppenbart så som "0 == 0" så tar den bort allt i databasen innan jag ens har gjort någon sökning? :S

Blir inte klok på det här.


Skall det vara så, att din DELETE inte skall ta bort allt och du därför undrar varför $q inte ger rätt DELETE eller undrar du varför ett alltid sant uttryck i if-satsen gör att queryn blir en DELETE?
__________________
Senast redigerad av Ekneb 2008-10-24 kl. 23:29. Anledning: Slarvade bort originalinlägg
Citera
2008-10-25, 01:56
  #3
Avstängd
Jag vill att det som motsvarar $q i databasen ska tas bort. men det fungerar inte om jag skriver $q i ifsatsen då händer inget. men om jag skriver typ 0 == 0 i ifsatsen så tar den bort allt :S
__________________
Senast redigerad av abiz 2008-10-25 kl. 02:02.
Citera
2008-10-25, 04:13
  #4
Medlem
Eknebs avatar
Citat:
Ursprungligen postat av abiz
Jag vill att det som motsvarar $q i databasen ska tas bort. men det fungerar inte om jag skriver $q i ifsatsen då händer inget. men om jag skriver typ 0 == 0 i ifsatsen så tar den bort allt :S

Om inget händer, ser jag två anledningar.. En är att if-satsens kropp aldrig stigs in - det vill säga if ($q) är aldrig sant. Den andra är att även om if ($q) är sant, så finns inga träffar i databasen. Kolla ifall $q verkligen matas med de värden du tror.
Citera
2008-10-25, 12:38
  #5
Medlem
gadzooxs avatar
Citat:
Ursprungligen postat av Ekneb
Om inget händer, ser jag två anledningar.. En är att if-satsens kropp aldrig stigs in - det vill säga if ($q) är aldrig sant. Den andra är att även om if ($q) är sant, så finns inga träffar i databasen. Kolla ifall $q verkligen matas med de värden du tror.
Jag tippar på det första. Då TS kör if (0 == 0), som ju evalueras till true (varför inte bara köra if (true) eller if (1)?), skriver han att allt tas bort ur tabellen. Om $q är tom blir queryn "DELETE FROM SMS WHERE sms LIKE '%%'", vilket ju stämmer bra med resultatet
Citera
2008-10-27, 15:24
  #6
Avstängd
$q matar in rätt, jag fick det att fungera häromdagen, jag kan inte minnas att jag ändrade något efter det. men dagen efter funka det bara inte :S
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback