[php+mySQL] Dubbele waardes die ik maar enkel wil...

Pagina: 1
Acties:

  • kramer65
  • Registratie: Oktober 2003
  • Laatst online: 09-03 23:28
Als je op mijn pagina naar ???????.php?songid=9189 heb ik dus de variabele $songid. Daar doe ik oa het volgende mee:

code:
1
2
3
4
5
6
7
8
9
<?
if (is_numeric($_GET['songid'])) { 
    if ($_GET['songid'] != 1) 
    { 
        $sql = "INSERT INTO log_table (song_idlog, date) VALUES ('$_GET[songid]', NOW())"; 
        mysql_query($sql) or die("foutje".mysql_error()); 
    } 
} 
?>

Hij insert het dus wel, maar hij doet het elke keer 2 keer. Ik heb echt geen idee waar het aan ligt. Ik doe die insert nergens in de pagina nog een keer maar doe wel andere queries. Die andere queries heb ik niet ook $sql genoemt dus daar ligt het ook niet aan. En het field song_idlog UNIQUE maken kan ook niet omdat dat cijfer wel meerdere keren voor mag komen. Dit staat verder ook niet in een loop ofzo. 8)7

Heeft iemand een idee voor een oplossing?

[ Voor 13% gewijzigd door kramer65 op 23-06-2008 12:51 ]


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Mja niet direct een oplossing, maar wel ff een check. Als je direct nadat je die query hebt uitgevoert een SELECT-query uitvoert staat die waarde er dan al dubbel in?

En kan het zo zijn dat je die pagina niet toevallig twee keer aanroept?

  • kramer65
  • Registratie: Oktober 2003
  • Laatst online: 09-03 23:28
Verrek!!

Ik heb gewoon de hele rest van de pagina gedelete en toen geprobeert. Dan insert ie em idd maar 1 keer.

Ik ben er nu achter dat het om een SELECT gaat die erna staat. Het is namenlijk zo:

[edit]

Het gaat niet om het stukje wat ik er net achteraan had geplakt (en wat ik hier nu heb weggehaald). Het gaat om een andere pagina die ik geinclude had. In die pagina word weer een poll geinclude. Dat is redelijk k*t. Ik heb al meer problemen met deze poll. Ik heb deze poll namenlijk gewoon geinstalleerd met een standaard pakket van http://www.proxy2.de maar dat werkt dus niet echt. Eerder bracht de cookies waarvan die poll gebruik maakt ook al problemen bij een andere pagina van mij. Ik geloof dat die poll de pagina weer meteen refreshed ofzoiets. Maar ik kijk wel even. Misschien moet ik met die poll geen gebruik maken van mysql maar van log files. Weet iemand of dat slechter is ofzo?

[ Voor 72% gewijzigd door kramer65 op 11-06-2004 22:58 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Geeft PhpMyAdmin aan dat ie er twee keer in zit? Of je eigen select statement? Als het alleen in je eigen select query zo is, dan ligt het natuurlijk daar aan. Of misschien heb je een redirect naar dezelfde pagina waarbij je de query per ongeluk nog eens uitvoert?

Nog een algemenere opmerking: zet die 2 ifs eens in elkaar:
PHP:
1
2
3
4
if (is_numeric($_GET['songid']) && ($_GET['songid'] != 1)) { 
    $sql = "INSERT INTO log_table (song_idlog, date) VALUES ('$_GET[songid]', NOW())"; 
    mysql_query($sql) or die("foutje".mysql_error()); 
}

Dat lost je probleem niet op, maar het is wel veel nettere code. :)

[ Voor 7% gewijzigd door NMe op 11-06-2004 22:46 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
kramer65 schreef op 11 juni 2004 @ 22:45:
Verrek!!

Ik heb gewoon de hele rest van de pagina gedelete en toen geprobeert. Dan insert ie em idd maar 1 keer.

Ik ben er nu achter dat het om een SELECT gaat die erna staat. Het is namenlijk zo:

[edit]

Het gaat niet om het stukje wat ik er net achteraan had geplakt (en wat ik hier nu heb weggehaald). Het gaat om een andere pagina die ik geinclude had. In die pagina word weer een poll geinclude. Dat is redelijk k*t. Ik heb al meer problemen met deze poll. Ik heb deze poll namenlijk gewoon geinstalleerd met een standaard pakket van http://www.proxy2.de maar dat werkt dus niet echt. Eerder bracht de cookies waarvan die poll gebruik maakt ook al problemen bij een andere pagina van mij. Ik geloof dat die poll de pagina weer meteen refreshed ofzoiets. Maar ik kijk wel even. Misschien moet ik met die poll geen gebruik maken van mysql maar van log files. Weet iemand of dat slechter is ofzo?
Wat zou het probleem zijn als de data dubbel in de mysql-database staat of dubbel in een logfile?

En of het beter is ligt ook aan hoe je de data wilt verwerken/gebruiken. Als je telkens een gedeelte van de data wilt laten zien dan is mysql qua selecteren van de data makkelijker, maar als je het zelf wilt gebruiken en dan gewoon de logfile ophaalt en dan verwijdert dan zou een logfile handiger zijn.

Kun je trouwens het script niet zo veranderen dat als die de redirect uitvoert dat die dan een extra var meestuurt waarin is aangegeven dat de regel al is toegevoegd? (En zit er niet zo'n check in dat script omdat die het zelf ook doet?)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Beter nog: waarom schrijf je niet je eigen poll script? Zo veel stelt dat nu ook weer niet voor. Lijkt me makkelijker dan het debuggen/herschrijven van andermans code voor je eigen gebruik.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • kramer65
  • Registratie: Oktober 2003
  • Laatst online: 09-03 23:28
Mijn eigen poll script schijven is idd de beste oplossing. Ik wil hier ook nog een keer aan beginnen. Maar nadat ik verschrikkelijk lang aan mijn website heb gewerkt wil ik hem nou wel eens de lucht in hebben. Daarom heb ik voor de makkelijke weg gekozen.
Ik zal er evenwel dus nog binnenkort (als mijn website hopelijk een beetje loopt :*) ) een keer aan beginnen.

Overigens worden die dingen als ik het met log files doe niet 2 keer weggeschreven. Dat ding wat dubbel ging had niks met de poll te maken maar het werd alleen door de poll veroorzaakt dat ie dubbel werd geINSERT.

Iig bedankt voor alle hulp. Ik zal jullie niet vermoeien met die hele poll die vol bugs zit. Daar vermoei ik mijzelf voorlopig wel weer even mee |:(

Groetjes!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

kramer65 schreef op 11 juni 2004 @ 23:41:
Mijn eigen poll script schijven is idd de beste oplossing. Ik wil hier ook nog een keer aan beginnen. Maar nadat ik verschrikkelijk lang aan mijn website heb gewerkt wil ik hem nou wel eens de lucht in hebben. Daarom heb ik voor de makkelijke weg gekozen.
Ik zal er evenwel dus nog binnenkort (als mijn website hopelijk een beetje loopt :*) ) een keer aan beginnen.

Overigens worden die dingen als ik het met log files doe niet 2 keer weggeschreven. Dat ding wat dubbel ging had niks met de poll te maken maar het werd alleen door de poll veroorzaakt dat ie dubbel werd geINSERT.

Iig bedankt voor alle hulp. Ik zal jullie niet vermoeien met die hele poll die vol bugs zit. Daar vermoei ik mijzelf voorlopig wel weer even mee |:(

Groetjes!
Dat poll script hier posten had sowieso niet veel uitgehaald omdat we in P&W geen support geven op andermans code. ;)

Verder is de "makkelijke" weg bij programmeren maar al te vaak achteraf de lastigste. Je kan beter van tevoren wat meer werk steken in je ontwerp, zodat je later voor minder problemen komt te staan. Programmeren is niet simpelweg code kloppen; een echt goeie programmeur werkt eerst op papier uitgebreid zijn applicatie uit, inclusief tests. Het uiteindelijke invoeren van code neemt maar een heel klein percentage van de tijd in die er voor een project uitgetrokken dient te worden. In het begin lijkt al dat plannen en van tevoren uittekenen wat overkill, maar uiteindelijk scheelt het je bergen werk en tijd, en je krijgt over het algemeen een beter werkend product. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1