Vinnaren i pepparkakshustävlingen!
2008-10-14, 19:05
  #1
Avstängd
Tja. jag håller på att göra en hemsida som folk kan skicka in sms till och sedan får ett svarssms. saken är den att allt som skrivs till denna sidan sparas på min mysqlbas och jag undrar om man på något sätt kan få sidan att automatist räkna ut om det som skrivs i smsen redan finns i databasen och registrera att det sedans finns tex 2 lika danna inskick. Ett exempel på hur jag skulle vilja få det att se ut (kolla i columnen COUNT):

Namn___________Nr______________Meddelande_________ _____Count
andreas_________073xxxx_________sverige är bäst____________3
robert__________076xxxx__________hejjsan hejjsan____________1

alltså att den lägger till 1 på count hela tiden. och vad ska jag ställa in COUNT på? chansar på att den inte ska vara på VARCHAR va?

Vad ska man använda för kod för att få den här funktionen? vore välldigt tacksam för en fullständig kod.

PS, jag kan en del om mysql så jag kan själv ändra om i den senare, tex som att ändra tabell och databas och sådan så det är bara hitta på egna så länge. DS

Tack på förhand.
__________________
Senast redigerad av abiz 2008-10-14 kl. 19:14.
Citera
2008-10-15, 07:47
  #2
Medlem
googlevistas avatar
Jag antar att det beror lite på vad du ska använda informationen till, men är det bara för att få en rapport så går det ju att ställa en enkel SQL-fråga.
Kod:
SELECT Namn, Nr, Meddelande, COUNT(*) AS Antal
FROM Ditt_tabell_namn
GROUP BY Namn, Nr, Meddelande
Citera
2008-10-15, 13:35
  #3
Avstängd
Tack så mycket!,

jag kom på ett annat sätt som kanske är lite lättare. om man skiter totalt i hur många likadana poster som finns i min databas, om jag istället bara vill att sidan känner av om det finns en post med samma meddelande, och i så fall skriver ut en echo "Ditt meddelande finns redan i databasen". hur skulle den koden kunna se ut? både php och mysql koden alltså
__________________
Senast redigerad av abiz 2008-10-15 kl. 13:38.
Citera
2008-10-21, 17:46
  #4
Moderator
Siegfrids avatar
Om det är meddelandet som du tittar efter sätter du ett UNIQUE index på meddelandet.
sql frågan blir då
insert into tabell (meddelande, ) values ('meddelandet',...) on duplicate key update Count=Count+1
Att det blir samma känner man efter genom att fråga efter affected rows, som blir 2 när det är samma meddelande som tidigare men 1 om det bara blir en ny rad.

Då får du med antal men sparar inte en ny rad om meddelandet är detsamma.

Annars är det bara att spara dem som nya rader och hämta ut antalet i rapporten:
select count( meddelande), meddelande from tabell group by meddelande
Citera
2008-10-23, 17:01
  #5
Avstängd
Menar du så här? jag får det inte att fungare:


$strQuery = mysql_query("
INSERT INTO SMS
(nr,sms,tariff,operator,antal)
VALUES
('" . $nr . "',
'" . $sms . "',
'" . $tariff . "',
'" . $operator . "',
'" . $antal . "'
) on duplicate key update antal=antal+1") or
exit(mysql_error());
?>
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