output while bij niks
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
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...
Tevens gooi je het eerste record altijd weg.
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)???
Code (php)
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
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';
}
?>
$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';
}
?>
$row = mysql_fetch_object($query);
buiten (boven) de while lus.
Die lijn moet sowieso weg, want daardoor wordt dus dat eerste record weggegooid
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!
... 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
aha, zal ik daarover maar weer s een tutorial gaan lezen;) (blijkbaar snap ik het nog niet helemaal)