[PHP/ MySQL] Time out in loop (ook als ik hem langer zet)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
het gaat hier allemaal om de volgende loop:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ID_oud = $ID - 50; 
do { 

if("$ID_oud" < 1) 
{ $ID_oud = "0"; } 
$winamp_oud = mysql_fetch_array(mysql_query("SELECT * FROM winamp_oud WHERE ID = $ID_oud")); 
//hier krijg ik dus die time out

$Winamp_oud_Artist = $winamp_oud['Artist']; 
$Winamp_oud_Titel = $winamp_oud['Titel']; 
$Winamp_oud_PlayCount = $winamp_oud['PlayCount']; 
$Winamp_oud_Rank = $winamp_oud['Rank']; 


$ID_oud++; 

} while ($Titel != $Winamp_oud_Titel);

bij de fetch array krijg ik de hele tijd een time out.. maar ik zie niet in waarom.. ook als ik de time out langer maakt helpt het niks dus er zit een fout in..


even kort uitgelegd:

ik haal met een winamp plugin allemaal info uit winamp libary over hoevaak ik liedjes heb geluisterd etc
dat zet het in een xml file
ik zet dat in een mysql tabel
en na een week wil ik zegmaar dat opnieuw doen
dan zet ik die oude tabel om kwa naam in:

winamp_oud

en de nieuwe maak ik aan en heet winamp (en zo gaat dat dan elke week zegmaar (zodra het werkt ;) ))
dan sorteer ik alles op count (aantal keren geluisterd)
en wil ik kijken of het lager of hoger staat in de ranglijst (vergeleken met de oude database)

maar hij loopt dus vast op die mysql fetch als ik hem in die loop zet...
omdat ik ook wel eens liedjes toevoeg of weghaal uit mn playlist
heeft elk liedje niet dezelfde ID als de vorige keer (na een update) maar meestal is de id niet 50 hoger of 50 lager (omdat ik meestal niet 50 liedjes in 1 keer toevoeg of verwijder)
dus doe ik hem - 50 en dan elke keer + 1 tot hij een liedje vindt met zelfde titel (omdat er ook meerdere nrs bijzitten met zelfde titel enz zoek ik niet op titel of artist)

het probleem zit wel in de loop want als je die weghaalt werktie gewoon
maar dan kan ik niet kijken oftie gestegen of gedaald is ten opzicht van vorige keer

is mijn methode fout om het te controleren ? zo ja waarom dan ? en wat zou ik anders moeten doen ?

zo niet.. wat klopt er dan niet?

[ Voor 3% gewijzigd door LocoShady op 29-04-2004 17:18 ]


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Moet je die beginconditie van id_oud = id - 50 niet buiten de while lus zetten?

Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
bigbeng schreef op 29 april 2004 @ 17:18:
Moet je die beginconditie van id_oud = id - 50 niet buiten de while lus zetten?
klopt foutje maar alsnog heb ik dan hetzelfde probleem ;)

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Is $Titel ooit gelijk aan $Winamp_oud_Titel .. ?

Sundown Circus


Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
RedRose schreef op 29 april 2004 @ 17:24:
Is $Titel ooit gelijk aan $Winamp_oud_Titel .. ?
Volgens mij wel ja
ik zal even kijken of ik wat kan inbouwen voor als hij het niet is..

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Misschien is het handiger om in de select query een where op te nemen om zo alleen de juiste titel op te halen? Scheelt je weer een onnodige loop en onnodige queries.
code:
1
where Titel = " . $Titel

[ Voor 3% gewijzigd door Creepy op 29-04-2004 17:34 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
Creepy schreef op 29 april 2004 @ 17:33:
Misschien is het handiger om in de select query een where op te nemen om zo alleen de juiste titel op te halen? Scheelt je weer een onnodige loop en onnodige queries.
code:
1
where Titel = " . $Titel
aangezien ik van sommige nrs en de video clip heb en het liedje kan hij de verkeerde tegenkomen


edit:

oke shit dat is de fout dus :)
de nieuwe nr's KAN hij nog niet tegenkomen in de oude database dus ik moet het op vangen voor als een liedje niet voorkomt hij doorgaat met de volgende

hoe kan ik dat het beste opvangen ?

[ Voor 24% gewijzigd door LocoShady op 29-04-2004 17:37 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
LocoShady schreef op 29 april 2004 @ 17:34:
[...]


aangezien ik van sommige nrs en de video clip heb en het liedje kan hij de verkeerde tegenkomen
En hoezo houd deze oplossing dat dan wel tegen ?
eventueel handig om het volgende te gebruiken: ORDER BY ID LIMIT 0,1
edit:
zo dus:
code:
1
"SELECT * FROM winamp_oud WHERE Titel = " . $Titel . " ORDER BY ID LIMIT 0,1"

/edit
edit:

oke shit dat is de fout dus :)
de nieuwe nr's KAN hij nog niet tegenkomen in de oude database dus ik moet het op vangen voor als een liedje niet voorkomt hij doorgaat met de volgende

hoe kan ik dat het beste opvangen ?
Eerst de query runnen zonder een WHERE en dan daarbij
PHP:
1
2
3
4
$query=mysql_query("SELECT * FROM winamp_oud");
while($winamp_oud=mysql_fetch_array($query)) {
  // hier code
}


of nog een mogelijkheid met jou code is mysql_num_rows();

[ Voor 8% gewijzigd door Shadowman op 29-04-2004 17:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

LocoShady schreef op 29 april 2004 @ 17:34:
hoe kan ik dat het beste opvangen ?
code:
1
2
if (test)
   continue;
Pagina: 1