output while bij niks

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter bakker

wouter bakker

22/02/2011 09:43:59
Quote Anchor link
beste mensen,
ik kan nergens vinden wat de output van een while loop is als er niks uitkomt:

$user_id = $_SESSION['user_id'];
$sql = "SELECT * FROM site WHERE user_id='$user_id' AND activate_site='1'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);

echo '<select name="site_name">';

while ($row = mysql_fetch_array($query))
{
echo '<option value="'.$row['site_name'].'">'.$row['site_name'].'</option>';
}
if($row['site_name']=''){
echo '<option value="uw site is nog niet geactiveerd"</option>';
}

echo '</select>';

als de site dus niet geactiveerd is (of dat account er nog geen heeft toegevoeg), zou er moeten komen "uw site is nog niet geactiveerd", maar dat komt er dus niet...

wat doe ik fout?

groetjes,
wouter
 
PHP hulp

PHP hulp

23/12/2024 02:29:18
 
Ozzie PHP

Ozzie PHP

22/02/2011 09:49:51
Quote Anchor link
if($row['site_name']=''){

moet zijn

if($row['site_name']==''){
Gewijzigd op 22/02/2011 09:50:13 door Ozzie PHP
 
Wouter bakker

wouter bakker

22/02/2011 09:52:11
Quote Anchor link
ah dankje;)

weer zo'n simpel klein piep foutje^^ (ben ik helaas goed in:@)

Toevoeging op 22/02/2011 09:56:56:

en hij stond per ongeluk onder option value ipv onder tekst^^ lol

bedankt!

Toevoeging op 22/02/2011 10:04:08:

mmm maar nu komt hij ook als de site wel geactiveerd is...
 
- SanThe -

- SanThe -

22/02/2011 10:04:42
Quote Anchor link
De hele struktuur klopt niet.
Tevens gooi je het eerste record altijd weg.
 
Wouter bakker

wouter bakker

22/02/2011 10:05:30
Quote Anchor link
hoe moet het dan?:$

Toevoeging op 22/02/2011 10:12:20:

geeft de while altijd de laatste als niks aan? moet ik hem misschien voor de while zetten (dus als er niks uit de database komt dan... else{ while loop)???
 
- SanThe -

- SanThe -

22/02/2011 12:04:04
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$sql
= "SELECT *
        FROM site
        WHERE user_id = '"
. mysql_real_escape_string($_SESSION['user_id']) . "'
        AND activate_site = 1"
;
$result = mysql_query($sql);
if($result)
{

    echo '<select name="site_name">';
    while ($row = mysql_fetch_assoc($result))
    {

        if($row['site_name'] == '')
        {

            echo '<option value="">Uw site is nog niet geactiveerd</option>';
        }

        else
        {
            echo '<option value="' . $row['site_name'] . '">' . $row['site_name'] . '</option>';
        }
    }

    echo '</select>';
}

else
{
    echo 'Error';
}

?>
 
Kris Peeters

Kris Peeters

22/02/2011 12:04:42
Quote Anchor link
Je hebt een
$row = mysql_fetch_object($query);
buiten (boven) de while lus.

Die lijn moet sowieso weg, want daardoor wordt dus dat eerste record weggegooid
 
Wouter bakker

wouter bakker

22/02/2011 12:06:49
Quote Anchor link
wauw bedankt! (dat ziet er ook al veel beter uit;)

1 vraagje, je zei dat ik de eerste record weg gooide, dat klopt volgens mij wel! Maar hoe komt dat?

nogmaals bedankt:D

Toevoeging op 22/02/2011 12:07:30:

ah haha dat was dus al het antwoord;) :P

bedankt!
 
Kris Peeters

Kris Peeters

22/02/2011 12:19:20
Quote Anchor link
Dat is wat mysql_fetch_object (of _assoc of _array) doet: een record lezen en naar de volgende wijzen.

... en wat jij doet:
Je leest het eerste record, doet er vervolgens niets mee en gaat naar het volgende.
Gevolg: het eerste record wordt niet gebruikt.
Gewijzigd op 22/02/2011 12:22:02 door Kris Peeters
 
Wouter bakker

wouter bakker

22/02/2011 12:20:51
Quote Anchor link
aha, zal ik daarover maar weer s een tutorial gaan lezen;) (blijkbaar snap ik het nog niet helemaal)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.