query met variabelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk

Henk

13/06/2006 11:08:00
Quote Anchor link
Als beginnende PHP-er worstel ik met het volgende probleem. Ik heb een database met een aantal tabellen: vogelwaarnemingen en foto's van vogels. Ik heb een script waarmee ik de waarnemingen van de laatste week kan tonen. Nu wil ik aan de hand van de code van vogel, telkens in de fototabel kijken of er een foto bestaat. Zo ja een link naar de foto tonen, zo nee niets doen. Ik krijg het niet voor elkaar om de query voor de foto uit te laten voeren. Hieronder de (uitgeklede versie van het PHP script)

Iemand een idee waarom de query voor de foto niet uitgevoerd wordt?

-----------------------------------
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
<?php

include ("db_connect_local.php");

// query om de waarnemingen te selecteren

$query = "    select       s.soort,
                           s.euringnummer,
                           date_format(datum, '%d-%m-%Y'),
                           p.plaatsnaam ,
                           aantal,
               from        soort s,
                           waarnemingen w ,
                           plaats p
               WHERE       w.soort = s.euringnummer and
                           p.plaatsnummer = w.locatie  and
                           TO_DAYS(NOW()) - TO_DAYS(datum) between 0 and 8
                           order by datum desc, soort"
;

$result    = mysql_query ($query);

// query om te kijken of er een foto in de tabel staat

$zoekfoto  =  "select fotonr from vwg_foto where  soort='". $soortc. "'";

?>


<html>
<head>
<title>Weekoverzicht</title>

</head>

<body>
<table class="php_tabel" width="100%" border="0" cellspacing="1" cellpadding="2">
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
28
29
30
31
32
33
34
35
36
37
<?php
    echo("<tr><td ><span class = \"vet\">Soort</td>
                   <td width=\"70\" class = \"vet\">Datum </td>
                   <td width=\"40\" class = \"vet\">Aant. </td>
                   <td width=\"100\"><span class = \"vet\">Locatie</td>
                   <td width=\"100\"><span class = \"vet\">Waarnemer</td>
                   <td><span class = \"vet\">Bijzonderheden</td></tr>"
);
 //
 // een voor een de waarnemingen ophalen
 //

    while (list($soort,$soortc,$datum, $locatie,$aantal,
                $schat,$waarn,$bijz,$kaart,$blok,$hok) = mysql_fetch_row($result))
   {

// nu kijken of er bij de soort een foto bestaat

   $fotoresult = mysql_query($zoekfoto);

 // is er een foto, dan een link aanmaken om daarna alle foto's te kunnen tonen
    
    if ($fotoresult[fotonr] <> NULL)
    {

        $foto = "<a href=\"javascript:popvenster('fotos.php?soort=".$soortc."'); \">foto  </a>";
    }

    else
    {
        $foto = "leeg";
    }

        
    echo("<tr><td valign=\"top\"><span class = \"vet\">$soort</td>
                   <td valign=\"top\" width=\"70\" nowrap>$datum </td>
                   <td  valign=\"top\" width=\"40\" align= \"center\" >$aantal</td>
                   <td valign=\"top\" width=\"100\">$locatie</td>
                   <td valign=\"top\">$waarn</td>
                   <td valign=\"top\">$bijz </td></tr>"
);
     }


?>

</table>

</body>
</html>
 
PHP hulp

PHP hulp

17/11/2024 05:54:31
 
Frank -

Frank -

13/06/2006 13:48:00
Quote Anchor link
Waarschijnlijk is het de Wet van Murphy: Alles wat fout kan gaan, zal ook fout gaan.

Dus moet je controleren of dat hier ook het geval is. Een query kan namelijk altijd mislukken, al is het maar omdat de databaseserver down is.

Voorbeeldje van een foutafhandeling:
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
<?php
// De eerste twee regels van je code:
ini_set('display_errors', 1);
error_reporting(E_ALL);

// eerste deel van je code

$query = "....."; // Hier je query

$result = mysql_query($query);

// controleer of de query is gelukt:
if(!$result){
  echo 'Mislukt: '.mysql_error().'<br />';
  echo 'Met query: '..$query;
  die(); // Beetje bot, kan beter
}

// rest van de code
?>
 
Henk

Henk

13/06/2006 14:06:00
Quote Anchor link
Bedankt voor je reactie. Heb het in het script gezet en gedraaid. Kreeg geen foutmelding. Lijkt er op dat ik de waarde niet goed uitlees uit $result. Hoe lees je in $result wat er in zit?
Heb nu:

ini_set('display_errors', 1);
error_reporting(E_ALL);
include ("db_connect_local.php");



// eerste deel van je code
// regel bestaat in de tabel ; gecontroleerd!

$query2 = "select fotonr
from vwg_foto
where soort='1340'";

$result2 = mysql_query($query2);

// controleer of de query is gelukt:
if(!$result2){
echo 'Mislukt: '.mysql_error().'<br />';
echo 'Met query: '.$query2;
die(); // Beetje bot, kan beter
}
else
{
echo 'Met query: '.$query2;
echo ("<br> resultaat: ". $result2['fotonr']);
die ();
}


en als resultaat op scherm

Met query: select fotonr from vwg_foto where soort='1340'
resultaat:

enig idee???
 
- wes  -

- wes -

13/06/2006 14:06:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if ($result && mysql_num_rows($result) >= 1)
{

 //gebruik ik zelf
}
?>
 
Henk

Henk

15/06/2006 11:45:00
Quote Anchor link
Dat doet precies wat ik bedoelde. Bedankt. Ik heb alles weer onder controle

over en sluiten
 



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.