Avatar billede webmasterdk Praktikant
10. juni 2005 - 10:30 Der er 9 kommentarer og
1 løsning

At tilføje en counter til mysql kommando.

Hejsa
Jeg har nedestående kode.
Jeg har dog det lille problem, at jeg gerne vil have den til, at hvis der findes en streng der indeholder præcis samme tekst i tabellerne "ref" og "tekst", så vil jeg gerne have at den i tabellen "count" plusser med 1, men hvordan gøres det?
Der skal tages højde for, at strengen evt. ikke findes i forvejen..
Jeg er helt blank på det. :-/

$ip = $_SERVER["REMOTE_ADDR"];
$host = gethostbyaddr($ip);
$referant = $_SERVER["HTTP_REFERER"];
$tekst = $_GET[text]."\n".$_GET[text2]."\n".$_GET[text3]."\n".$_GET[text4];
$tid = date("ymjGis");
$tekst = ereg_replace("%20", " ", $tekst);
$billede = "iraqsoldier";
mysql_query("insert into imagefuck (billede,tekst,ip,host,ref,tid) values ('$billede','$tekst','$ip','$host','$referant','$tid')");
Avatar billede flim Nybegynder
10. juni 2005 - 10:36 #1
Du skal lave en løkke som tager alle linier ud fra de eksisterende linier - en for-løkke skal nok bruges her.

Herefter sammenligner du hver linie med den der lige er puttet ind. HVis den er ens tæller du count 1 op
Avatar billede flim Nybegynder
10. juni 2005 - 10:39 #2
$q1 = mysql_query("SELECT * FROM imagefuck");

$taeller = 0;

while ($row = mysql_fetch_array($q1))
{
  if ($tekst == $row[tekst] || $ref == $row[ref])
  {
    $row++;
    $taeller = 1;
  }
}

if ($taeller != 1)
{
  mysql_query("insert into imagefuck (billede,tekst,ip,host,ref,tid) values ('$billede','$tekst','$ip','$host','$referant','$tid')");
}

Håber du kan bruge det til et eller andet
Avatar billede barklund Nybegynder
10. juni 2005 - 10:42 #3
Aij, det er da direkte tåbeligt? Du kan da nøjes med at se, om der er nogen, der er magen til - og hvis det er hive den højest count ud for dem:

$ip = $_SERVER["REMOTE_ADDR"];
$host = gethostbyaddr($ip);
$referant = $_SERVER["HTTP_REFERER"];
$tekst = $_GET[text]."\n".$_GET[text2]."\n".$_GET[text3]."\n".$_GET[text4];
$tid = date("ymjGis");
$tekst = ereg_replace("%20", " ", $tekst);
$billede = "iraqsoldier";
$test = mysql_query("SELECT COUNT(*) as rows, MAX(count) as count FROM imagefuck WHERE tekst='".$tekst."' AND ref = '".$referant."');
$row = mysql_fetch_array($test);
if ($row['rows'] > 0) {
  $count = $row['count'] + 1;
} else{
  $count = 1;
}
mysql_query("insert into imagefuck (billede,tekst,ip,host,ref,tid,count) values ('$billede','$tekst','$ip','$host','$referant','$tid',$count)");

Det tror jeg er en _del_ smartere :)

--
Morten Barklund
Avatar billede webmasterdk Praktikant
10. juni 2005 - 10:43 #4
flim > Efter hvad jeg kan se, så tæller den kun antal forekomster?
Avatar billede flim Nybegynder
10. juni 2005 - 10:46 #5
*host host*...

barklund - ved ikke lige hvad jeg tænkte på. DIn løsning med at søge efter den samme i en select er self. meget nemmere og hurtigere.

webmasterdk - glem bare hvad jeg skrev. Jeg er åbenbart allerede gået på weekend oppe i hovedet ;-)

God weekend til Jer
Avatar billede webmasterdk Praktikant
10. juni 2005 - 10:47 #6
barklund > Den counter ikke, og smider en ny ind for hver gang..
Avatar billede webmasterdk Praktikant
10. juni 2005 - 10:59 #7
Glem min sidste kommentar! ;)
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/imagefuck/iraqsoldier/iraqsoldier.php on line 16

Og linie 16 er: if ($row['rows'] > 0) {
Avatar billede webmasterdk Praktikant
10. juni 2005 - 11:28 #8
Sådan, fik det til at virke...
$test = mysql_query("SELECT COUNT(*) as rows, MAX(count) as count FROM imagefuck WHERE tekst='".$tekst."' AND ref = '".$referant."'");
$row = mysql_fetch_array($test);
if ($row[rows] > 0) {
$select = mysql_query("select * from imagefuck WHERE tekst='".$tekst."' AND ref = '".$referant."'");
$row2 = mysql_fetch_array($select);

$count = $row[count]+1;
  echo $row2[id];
mysql_query("update imagefuck set count = '".$count."' where id = ".$row2[id]."");

} else {
    $count = 1;
    mysql_query("insert into imagefuck (billede,tekst,ip,host,ref,tid,count) values ('$billede','$tekst','$ip','$host','$referant','$tid','$count')");

}


Barklund > Smider du lige et svar? ;)
Avatar billede webmasterdk Praktikant
10. juni 2005 - 11:37 #9
Har du forresten en ide til hvordan jeg slippe af med disse linier?
$select = mysql_query("select * from imagefuck WHERE tekst='".$tekst."' AND ref = '".$referant."'");
$row2 = mysql_fetch_array($select);

grunden til at jeg har dem, er at jeg ikke kan finde ud af at hive row[id] ud af dit..
Avatar billede webmasterdk Praktikant
11. juni 2005 - 21:05 #10
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester