Toon posts:

[php] !=NULL probleem

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hi, ik heb het volgende statment:
code:
1
2
3
4
5
6
7
$sql = "SELECT * FROM verslagen WHERE team='$team' AND seizoen='2001-2002' AND helft='veld2'"; 
    if (mysql_query($sql) !="" ){
        echo "2de helft veld competitie 2001-2002";
        echo "<br>";
        $resultaat = mysql_query($sql); 
        while ($record = mysql_fetch_object($resultaat)) { 
        echo "<a href=verslag.php?id=$record->id> $record->titel</a><br>\n";} }

alleen nu is het zo dat er nog geen verslagen van veld2 van 2001-2002 zijn , dus dat die regel niet afgedrukt word. maar hij drukt hem wel af.

hoe kan ik dit oplossen??????

Verwijderd

mysql_query geeft een id af, dit is dus geen tekst! Beter is het om met mysql_num_rows te kijken hoeveel regels er zijn geretourneerd. (Als dat dus 0 is, dan zijn er geen regels aanwezig)

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op Sunday 09 December 2001 22:27 schreef -=[Terrorvis]=- het volgende:
Hi,
Hoi.
code:
1
if (mysql_query($sql) !="" ){

Je kunt gewoon "if (mysql_query($sql)) {" zeggen.

En wat je je kennelijk niet realiseert: een query die mislukt (er wordt *geen* resultset teruggegeven), is iets anders dan een query die 0 records oplevert. (er wordt een *lege* resultset teruggegeven)

Je moet dus niet kijken of mysql_query wat teruggeeft, maar bijvoorbeeld of mysql_fetch_object wat teruggeeft, en aan de hand daarvan die regel afdrukken. :)

Verwijderd

Als ik je query bekijk valt er ook nog wel wat te optimaliseren aan je database structuur :)

Verwijderd

Topicstarter
Op Sunday 09 December 2001 22:37 schreef Tizzwat het volgende:
Als ik je query bekijk valt er ook nog wel wat te optimaliseren aan je database structuur :)
owjah????
vertel hulp is altijd handig enzo.

Verwijderd

Op Sunday 09 December 2001 22:41 schreef -=[Terrorvis]=- het volgende:
owjah????
vertel hulp is altijd handig enzo.
Jah, ik weet niet welke gegevens je allemaal uit die database trekt, maar zo te zien kan het wel efficienter :)

Kijk hier eens naar;
http://www.phpbuilder.com/columns/barry20000731.php3

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Verder is het ook niet erg handig om 2x dezelfde query achter elkaar te doen, omdat het alleen maat tijd/load kost. Je kan het beter doen op de volgende manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$sql = "SELECT  * 
        FROM    verslagen 
        WHERE   team='$team' 
          AND   seizoen='2001-2002' 
          AND   helft='veld2'"; 
$query = mysql_query($sql);
if (mysql_num_rows($query)){
    echo "2de helft veld competitie 2001-2002";
    echo "<br>";
    while ($record = mysql_fetch_object($query)) { 
        echo '<a href="verslag.php?id=$record->id"> $record->titel</a><br>' . "\n";
    }
}
?>

Hierbij heb ik trouwens ook het antwoord van je vraag erin verwerkt, de query wat leesbaarder gemaakt en de href maar tussen aanhalingstekens gezet :Y)
Pagina: 1