Forum » Server-Side scripting » Oneindige loop?
Hardstyle
Berichten: 225
avatar
Offline Stuur privebericht
Halloo,

Ik heb dit scriptje.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(!defined('NEWS_TABLE'))
  
define('NEWS_TABLE''news');

$stmt $dbh->query('SELECT *
                     FROM ' 
NEWS_TABLE);

if(
$stmt->fetch(PDO::FETCH_NUM) == 0)
{
    
?>
                <tr> 
                    <td class="text">
                        Er zijn geen records gevonden.
                    </td> 
                </tr>
    <?php
}
else
{
    while(
$res $stmt->fetch(PDO::FETCH_ASSOC))
    {
        
?>
                <tr> 
                    <td class="text">
                        De records:
                    </td> 
                </tr>
        <?php
    
}
}
?>


Hij maakt er een oneindige loop van, hoe komt dat?
Wat doe ik fout, want chrome geeft nu aan dat de pagina crashed!

Wie kan me helpen?
Laatst gewijzigd door Jackie op 2011-02-17 18:40:21
17-02-2011 18:33
Dit topic is 207 keer bekeken door 43 verschillende leden
Reacties op: "Oneindige loop?"
1
Webdeveloper & Programmeu
Berichten: 1000
avatar
Offline Stuur privébericht
je gebruikt een dubbele = in de while , mag niet?

als dit niet werkt hoor ik het graag.

ik denk overigens dat je de records bovenm de while wil anders zie je straks 100 keer bijv de tekst de records?
17-02-2011 18:40
Hardstyle
Berichten: 225
avatar
Offline Stuur privébericht
Ja merkte het al dat ik == had staan ipv =

Ja idd ik zag 200 keer de records staan.

In de while loop zet ik dit:
Code | Selecteer Alles
minimaliseren
1
<?php echo $res['title']; ?>


Dan laat hij niks zien, hoe kan dat?
17-02-2011 18:44
Webdeveloper & Programmeu
Berichten: 1000
avatar
Offline Stuur privébericht
Ik snap sowieso niet het nut om een define te gebruiken voor news . verder is het beetje wel extreem wat je allemaal opvraagt uit je database.

ik denk zelf dat je even wat moet debuggen om te kijken of er wel gegevens uit komt.

echo je num_rows is en kijk wat je eruit krijgt?
17-02-2011 19:00
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
ga eerst eens rowCount() gebruiken in plaats van fetch(PDO::FETCH_NUM)

Als je maar een record in je database had staan hoort het nu te werken, anders mag je een var_dump() van $res posten
17-02-2011 19:01
Hardstyle
Berichten: 225
avatar
Offline Stuur privébericht
Die define is alleen als er meerdere keer iets uit de tabel word opgevraagd dat je dan niet bij alle query's de tabel namen moet veranderen als dat nodig is.

Ik lied hem checken of er wel records in de tabel stonden.

PDO::FETCH_NUM geeft een array terug en geen int dus moet een andere manier vinden.

Nieuwe reactie samengevoegd met originele reactie op 17.02.11 19:07:19:
@Darsstar dankjewe die zocht ik.

Nu kan ik dus checken of er wel een record bestaat of niet.

Het nieuwe script.
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php 
if(!defined('NEWS_TABLE')) 
  
define('NEWS_TABLE''news'); 

$stmt $dbh->query('SELECT * 
                     FROM ' 
NEWS_TABLE); 

if(
$stmt->rowCount() == 0)

    
?> 
                <tr>  
                    <td class="text"> 
                        Er zijn geen records gevonden. 
                    </td>  
                </tr> 
    <?php 

else 

    while(
$res $stmt->fetch(PDO::FETCH_ASSOC)) 
    { 
        
?> 
                <tr>  
                    <td class="text"> 
                        Hier de records laten zien!
                    </td>  
                </tr> 
        <?php 
    


?>
17-02-2011 19:02
Reageer op: "Oneindige loop?"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden