elseif(mysql_num_rows($res) == 0) vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John van der Linden

John van der Linden

22/07/2010 13:59:17
Quote Anchor link
Ik wil graag uit mijn datbase lezen of er een stukje tekst staat, zo ja dan echo dit, zo nee, dat echo dat

Ik doe dit met :

elseif(mysql_num_rows($res) == 0)

Maar gaat helaas niet helemaal goed....iemand een suggestie ?

Hele code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';}}
 
PHP hulp

PHP hulp

05/11/2024 13:36:15
 
Johan Dam

Johan Dam

22/07/2010 15:00:47
Quote Anchor link
wat gaat er niet goed dan?

probeer het anders eens iets overzichtelijker te maken;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
?>
 
John van der Linden

John van der Linden

22/07/2010 15:47:23
Quote Anchor link
ja, heb ik gedaan, maar zie niet echt dat er iets fout staat.

OP het moment dat er niets gevonden wordt gaat het goed, maar als hij wel wat moet vinden dan wordt dat niet weergegeven....
 
TJVB tvb

TJVB tvb

22/07/2010 15:54:53
Quote Anchor link
John, Ik zie geen verschil in de echo bij als er wat gevonden is en als er niks gevonden is.

Johan, als je het hebt over overzichtelijk waarom zet je er dan geen accolades bij?

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
<?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>';
}

?>
 
John van der Linden

John van der Linden

22/07/2010 15:56:32
Quote Anchor link
de class verschilt, daardoor is de opmaak van de tabel anders !
 
John van der Linden

John van der Linden

22/07/2010 15:58:21
Quote Anchor link
hierbij de voledige code....
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
<?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>';}}
?>
Gewijzigd op 22/07/2010 15:59:52 door John van der Linden
 
TJVB tvb

TJVB tvb

22/07/2010 16:09:56
Quote Anchor link
Weet je zeker dat er records zijn?
echo anders eens de query en gooi die rechtstreeks in je database ( via heidisql/phpmyadmin etc)
 
John van der Linden

John van der Linden

22/07/2010 16:11:35
Quote Anchor link
ja, die staan er....rechtsreeks is het geen probleem....
 
Niek s

niek s

22/07/2010 16:30:58
Quote Anchor link
Ik krijg echt koppijn van die code O.o

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.
 

22/07/2010 18:39:29
Quote Anchor link
Je gebruikt toch hoop ik wel het type date in de database voor een datum?
En het is wellicht ook handiger om variabelen buiten quotes te halen.
 
Martijn B

Martijn B

22/07/2010 19:16:56
Quote Anchor link
Wat krijg je op je scherm??

Ik zou dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!$res = mysql_query($sql))
?>


Nog even veranderen in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$res
= mysql_query($sql);
if( !$res )
?>
 
John van der Linden

John van der Linden

22/07/2010 22:04:16
Quote Anchor link
oke, ben even aan het testen met alle suggesties...
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 ?
 
John van der Linden

John van der Linden

24/07/2010 00:38:33
Quote Anchor link
ben er niet meer uitgekomen, opgelost door waardes in variabelen te zetten en die uit te lezen....
 
John van der Linden

John van der Linden

24/07/2010 00:39:33
Quote Anchor link
ben er niet meer uitgekomen, opgelost door waardes in variabelen te zetten en die uit te lezen....
 
S Prince

S Prince

24/07/2010 02:41:27
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
<?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>';}}
?>


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.
 



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.