elseif(mysql_num_rows($res) == 0) vraag
Ik doe dit met :
elseif(mysql_num_rows($res) == 0)
Maar gaat helaas niet helemaal goed....iemand een suggestie ?
Hele code:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
{$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
probeer het anders eens iets overzichtelijker te maken;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = " . $memberid;
$res = mysql_query($sql) OR trigger_error(mysql_error().'<br />In query: '.$sql);
if(mysql_num_rows($res) == 0)
echo '<td width="25" align="center" class="altkalendarhd3b">FOUT</td>';
else
echo '<td width="25" align="center" class="altkalendarhd3a">GOED</td>';
?>
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = " . $memberid;
$res = mysql_query($sql) OR trigger_error(mysql_error().'<br />In query: '.$sql);
if(mysql_num_rows($res) == 0)
echo '<td width="25" align="center" class="altkalendarhd3b">FOUT</td>';
else
echo '<td width="25" align="center" class="altkalendarhd3a">GOED</td>';
?>
OP het moment dat er niets gevonden wordt gaat het goed, maar als hij wel wat moet vinden dan wordt dat niet weergegeven....
Johan, als je het hebt over overzichtelijk waarom zet je er dan geen accolades bij?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = " . $memberid;
$res = mysql_query($sql);
if($res === false)
{
//misschien log je de errors en ga je daarna alsnog door, dan moeten we het wel even in een if stoppen.
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo '<td width="25" align="center" class="altkalendarhd3b">FOUT</td>';
}
else
{
echo '<td width="25" align="center" class="altkalendarhd3a">GOED</td>';
}
?>
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = " . $memberid;
$res = mysql_query($sql);
if($res === false)
{
//misschien log je de errors en ga je daarna alsnog door, dan moeten we het wel even in een if stoppen.
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo '<td width="25" align="center" class="altkalendarhd3b">FOUT</td>';
}
else
{
echo '<td width="25" align="center" class="altkalendarhd3a">GOED</td>';
}
?>
de class verschilt, daardoor is de opmaak van de tabel anders !
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "SELECT dat FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3">31</td>';}
else
{
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
?>
$sql = "SELECT dat FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3">31</td>';}
else
{
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
?>
Gewijzigd op 22/07/2010 15:59:52 door John van der Linden
echo anders eens de query en gooi die rechtstreeks in je database ( via heidisql/phpmyadmin etc)
ja, die staan er....rechtsreeks is het geen probleem....
Wat me opvalt: waarom heb je een tabel die db2010 heet? Heb je nou per jaar een nieuwe tabel?! Das niet de bedoeling: je moet in een rij aangeven welk jaar het is ;-)
Heb je goed gekeken dat de classes ook in je CSS verschillend zijn? Wellicht een idee om een compleet andere tekst neer te knallen in alle 3 de situaties, als test.
En het is wellicht ook handiger om variabelen buiten quotes te halen.
Ik zou dit:
Nog even veranderen in:
Wat blijkt :
Als de tabel leeg is werkt het goed, maar als er iets weggeschreven is in de database, dan gaat het mis.
DB2010 : veld1, veld2, veld3, veld4
Als ik alleen veld1 weg schrijft, en daarna een query maakt op veld2,3 of 4, dat vindt de query toch iets, terwijl er niets staat.
Slaat iemand hierop aan ?
ben er niet meer uitgekomen, opgelost door waardes in variabelen te zetten en die uit te lezen....
ben er niet meer uitgekomen, opgelost door waardes in variabelen te zetten en die uit te lezen....
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "SELECT dat FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3">31</td>';}
else
{
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
?>
$sql = "SELECT dat FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3">31</td>';}
else
{
$sql = "SELECT merknad FROM db2010 WHERE dat = 20100131 AND member_id = {$memberid}";
if(!$res = mysql_query($sql)){trigger_error(mysql_error().'<br />In query: '.$sql);}
elseif(mysql_num_rows($res) == 0)
{echo '<td width="25" align="center" class="altkalendarhd3b">31</td>';}
else
{echo '<td width="25" align="center" class="altkalendarhd3a">31</td>';}}
?>
De eerste query lijkt me vrij zinloos, je vraagt dat op waar dat gegeven is.
Bovendien dacht ik dat een datum steeds in yyyy-mm-dd voor het DATE formaat van mysql. Om te zoeken moet het dan ook tussen ' ' staan.
Bovendien geeft mysql_num_rows false terug indien een element niet gevonden werd, vergelijken met 0 heeft dus weinig zin.