Avatar billede kbirk Nybegynder
31. maj 2003 - 23:13 Der er 18 kommentarer og
1 løsning

Problemer med MySQL

Hejsa..
Jeg har snart brugt MySQL sammen med PHP i en del tid og er løbet ind i to mærkelige problemer..! Det ene er når jeg skal sammenligne en indtastet kode med en fra databasen. Hvis koden starter med 0 så kan den ikke genkende de to koder og vil derfor ikke lukke brugeren ind i systemet.. Det andet problem opstår i et pointsystem der er på siden. Jeg henter pointene i DB'en og skal vise dem i browseren, men hvis pointet slutter på 0, feks. 400, så kører den noget tid om mælder timeout på databasen..

Findes der en forklaring derude..?

Mvh. kasper birk
mail@kbirk.dk
Avatar billede morw Nybegynder
31. maj 2003 - 23:21 #1
Vi skal vist se hele fejlen samt lidt kode
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:24 #2
Dette er fejlen når der findes en med 400 point i DB:
Fatal error: Maximum execution time of 30 seconds exceeded in func\functions.php on line 374
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:26 #3
374 ->    while($points >= '50'){           
        if($points > '50'){
            ?><img src="img/star50.gif" alt="50 points"><?
            $points = $points - '50';
        }
    }
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:28 #4
Datatypen for points i tabellen er int(10)
Avatar billede tangveje Nybegynder
31. maj 2003 - 23:34 #5
Prøv at fjerne ' omkring 50, så PHP også anser det for at være et tal og ikke en streng

while($points >= 50){
Avatar billede tangveje Nybegynder
31. maj 2003 - 23:37 #6
Skal selvfølgelig også gøres andre steder i koden, ikke kun i while-løkken
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:37 #7
Det hjalp ikke... den siger stadig det samme..
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:42 #8
Sådan hiver jeg det hele ud fra DB:
$resultat = mysql_query("select * from users where status = '1' order by points desc");
Avatar billede tangveje Nybegynder
31. maj 2003 - 23:44 #9
Jeg kunne godt forestille mig at det i virkeligheden er denne linie der giver problemer

$points = $points - '50';

Muligvis giver det kun en warning fra PHP (som du måske ikke ser fordi du har sat PHP til ikke at vise warnings)... PHP prøver at trække strengen '50' fra tallet $points, istedet for tallet 50 fra tallet $points, hvilket resulterer i at $points altid er højere end 50, så løkken fortsætter i al uendelighed, indtil du når grænsen på 30 sek.

Blot en teori, rettede du også den linie skal du selvfølgelig bare se bort fra min lille teori :)
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:46 #10
Ja.. rettede alt med ''..
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:49 #11
Har fundet fejlen..
    while($points >= 50){           
        if($points >= 50){
            ?><img src="img/star50.gif" alt="50 points"><?
            $points = $points - 50;
        }
    }

ændrede if($points > 50){ til if($points >= 50){..
kan i forklare hvorfor den ikke kunne lide det..?
Avatar billede tangveje Nybegynder
31. maj 2003 - 23:52 #12
Ja, hvis $points er lig med 50 (præcist), vil der ikke blive trukket 50 fra (da 50 ikke er større end 50), og løkken kører uendeligt...
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:52 #13
Jeg smutter igen tak for hjælpen.. Kigger på den anden fejl i morgen..
Tak for hjælpen..
Avatar billede kbirk Nybegynder
31. maj 2003 - 23:53 #14
Nå ja det er klart... igen tak..
Avatar billede kbirk Nybegynder
26. februar 2004 - 12:54 #15
.
Avatar billede kbirk Nybegynder
19. november 2005 - 15:09 #16
tangveje vil du have points for dette gamle indlæg..? Faldt lige over det ved et tilfælde og kan se det ikke er afsluttet..
Avatar billede tangveje Nybegynder
19. november 2005 - 16:34 #17
Hellere sent end aldrig, er det ikke sådan man siger? :)
Avatar billede kbirk Nybegynder
19. november 2005 - 16:37 #18
Jo det er jo lige det.. Så er den klaret.. :D
Avatar billede tangveje Nybegynder
19. november 2005 - 16:39 #19
Og jeg takker :)
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
Computerworld tilbyder specialiserede kurser i database-management

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