[mysql] standaard melding

Pagina: 1
Acties:

  • mulleknul
  • Registratie: December 2003
  • Laatst online: 24-04 19:37
Hallo, ik heb het volgende probleem:


Het script zier er als volgt uit"
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
require "kop.php";

$sql = "SELECT * FROM Categorie, Categorie_per_Artikel, Artikel WHERE Artikel.ARTIKEL_ID=Categorie_per_Artikel.ARTIKEL_ID AND Categorie.CATEGORIE_ID=Categorie_per_Artikel.CATEGORIE_ID AND Categorie_per_Artikel.CATEGORIE_ID=".$_GET["catid"];

$resultaat  = mysql_query($sql); // voer SQL code uit
if (mysql_num_rows($resultaat) > 0) {
    if ($zoek) {
        echo "Gezocht op <b>$zoek</b><br><p>";
    } else {
        echo "<p>Categorie:".$_GET["catnaam"]."<br><p>";
    }
    echo "<table border=0 cellpadding=0 cellspacing=0>";
    echo "<tr><td><b>URL</b></td></tr>"; // bovenste regel
    while ($rij = mysql_fetch_array($resultaat)) {
    $artikelid = $rij["ARTIKEL_ID"];
    echo "<tr>";
     echo "<td> ".$rij["Naam"]."</td><td>  <a href=\"contact.php?artikelid=$artikelid\">[Interesse?  ></a></td>";
    echo "</tr>";

    }
    echo "</table>";
} else {
    echo "Er zijn geen artikelen die aan deze criteria voldoen";
}

require "voet.php";

Hoe zorg ik er voor dat als deze pagina wordt geladen er niet het volgende in de browser te zien is?

/home/htpd/vhosts/testurl.nl/httpdocs/test/laatzien.php on line 7
Er zijn geen artikelen die aan deze criteria voldoen

Ik wil dus dat als er geen query wordt uitgevoerd dat er dan uitsluitend de tekst :

"Er zijn geen artikelen die aan deze criteria voldoen" te zien is?
Zodra er een query wordt uitgevoerd moet natuurlijk de database inhoud worden gelezen.


Wie helpt mij verder? Alvast bedankt (newbee)

[ Voor 20% gewijzigd door curry684 op 01-02-2004 15:41 . Reden: dan zet ik die PHP-tags maar ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

ik zie het zo snel niet, maar het helpt een boel als je je code ff tussen [code] tags zet, goed inspringt en het is ook gangbaar om variabelen uit een array tussen ' te zetten ipv ", dus bijv. $_GET['catid']

  • mulleknul
  • Registratie: December 2003
  • Laatst online: 24-04 19:37
X-Lars schreef op 01 februari 2004 @ 12:06:
ik zie het zo snel niet, maar het helpt een boel als je je code ff tussen [code] tags zet, goed inspringt en het is ook gangbaar om variabelen uit een array tussen ' te zetten ipv ", dus bijv. $_GET['catid']
Bedankt, maar zou ik niet een een "standaard" waarde uit de database kunnen laden als deze pagina voor het eerst wordt geladen, dus zonder query?

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Die 'standaard melding' is geen standaard melding maar een foutmelding op regel 7. Je gaat dus even bij regel 7 kijken wat er aan de hand is. Verder kijk je even in de source van je pagina, waarin vast wel de complete foutmelding zit. Waarschijnlijk zal het iets met 'undefined variable', 'undefined index' of 'Not a valid MySQL resource' zijn. Check daarna even de FAQ van P&W, want daarin staat precies hoe je het op kan lossen. :)

En maak van regel 6 maar:
PHP:
1
$resultaat = mysql_query($sql) or die(mysql_error()); // voer SQL code uit

[ Voor 18% gewijzigd door RedRose op 01-02-2004 12:23 ]

Sundown Circus


  • mulleknul
  • Registratie: December 2003
  • Laatst online: 24-04 19:37
RedRose schreef op 01 februari 2004 @ 12:14:
Die 'standaard melding' is geen standaard melding maar een foutmelding op regel 7. Je gaat dus even bij regel 7 kijken wat er aan de hand is. Verder kijk je even in de source van je pagina, waarin vast wel de complete foutmelding zit. Waarschijnlijk zal het iets met 'undefined variable', 'undefined index' of 'Not a valid MySQL resource' zijn. Check daarna even de FAQ van P&W, want daarin staat precies hoe je het op kan lossen. :)

En maak van regel 6 maar:
PHP:
1
$resultaat = mysql_query($sql) or die(mysql_error()); // voer SQL code uit
Heb ik gedaan dit wordt dan getoond: You have an error in your SQL syntax near '' at line 1.

Er wordt bij het tonen van deze pagina natuurlijk ook geen query gedaan, maar daar zit hem nu jusit de kneep. Als er geen guery wordt gedaan wil ik graag geen foutmelding maar gewoon een tekst zoals" je hebt nog geen keuze gemaakt".

Ik hoop dat ik zo iets duidelijker ben. (zoeken in de faq leverde mij niets op hoe omschrijf je zo'n vraag?)

[ Voor 23% gewijzigd door mulleknul op 01-02-2004 13:08 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

bestaat $_GET['catid'] wel?! als je de gegevens met een form verstuurd met als action "post" moet je natuurlijk $_POST['catid'] gebruiken

edit: met register_globals 'off' dan, maar het is sowieso beter

[ Voor 30% gewijzigd door X-Lars op 01-02-2004 13:08 ]


  • mulleknul
  • Registratie: December 2003
  • Laatst online: 24-04 19:37
X-Lars schreef op 01 februari 2004 @ 13:07:
bestaat $_GET['catid'] wel?! als je de gegevens met een form verstuurd met als action "post" moet je natuurlijk $_POST['catid'] gebruiken

edit: met register_globals 'off' dan, maar het is sowieso beter
Dit script wordt aangeroepen door een ander script zie hieronder>

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
require "mysqldb.php";

echo "<br><p>";
echo "De volgende categorieën zijn beschikbaar:<br><p>";

    $sql = "SELECT * FROM Categorie";
    $resultaat  = mysql_query($sql); // voer SQL code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        $id = $rij["CATEGORIE_ID"];
        $naam = $rij["Naam"];
echo "<a href=\"laatzien.php?catid=$id&catnaam=$naam\">$naam</a><br>";

    }

[ Voor 16% gewijzigd door curry684 op 01-02-2004 15:42 . Reden: en wederom :/ ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

mulleknul schreef op 01 februari 2004 @ 13:04:
[...]
Er wordt bij het tonen van deze pagina natuurlijk ook geen query gedaan, maar daar zit hem nu jusit de kneep.
Er wordt wel een query gedaan: precies bij // Voer SQL code uit :+

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 09:54

Reinier

\o/

mulleknul schreef op 01 februari 2004 @ 13:10:
[...]

echo "<a href=\"laatzien.php?catid=$id&catnaam=$naam\">$naam</a><br>";
Het heeft niets met je vraag te maken, maar je mag nooit een & echoën, dat moet natuurlijk &amp; zijn.

Verwijderd

mulleknul schreef op 01 februari 2004 @ 13:10:
[...]


Dit script wordt aangeroepen door een ander script zie hieronder>

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
require "mysqldb.php";

echo "<br><p>";
echo "De volgende categorie&euml;n zijn beschikbaar:<br><p>";

    $sql = "SELECT * FROM Categorie";
    $resultaat  = mysql_query($sql); // voer SQL code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        $id = $rij["CATEGORIE_ID"];
        $naam = $rij["Naam"];
echo "<a href=\"laatzien.php?catid=$id&catnaam=$naam\">$naam</a><br>";

    }
?>
Ff off-topic: zoals X-Lars al zei: zet je code tussen code-tags!

[ Voor 16% gewijzigd door Verwijderd op 01-02-2004 13:20 ]


  • mulleknul
  • Registratie: December 2003
  • Laatst online: 24-04 19:37
code:
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
<?php
require "kop.php";

$sql = "SELECT * FROM Categorie, Categorie_per_Artikel, Artikel WHERE Artikel.ARTIKEL_ID=Categorie_per_Artikel.ARTIKEL_ID AND Categorie.CATEGORIE_ID=Categorie_per_Artikel.CATEGORIE_ID AND Categorie_per_Artikel.CATEGORIE_ID=".$_GET["catid"];

$resultaat = mysql_query($sql) or die(mysql_error()); 
if (mysql_num_rows($resultaat) > 0) {
    if ($zoek) {
        echo "Gezocht op <b>$zoek</b><br><p>";
    } else {
        echo "<p>Categorie:".$_GET["catnaam"]."<br><p>";
    }
    echo "<table border=0 cellpadding=0 cellspacing=0>";
    echo "<tr><td><b>URL</b></td></tr>"; // bovenste regel
    while ($rij = mysql_fetch_array($resultaat)) {
    $artikelid = $rij["ARTIKEL_ID"];
    echo "<tr>";
    echo "<td>&nbsp;".$rij["Naam"]."</td><td>&nbsp;&nbsp;<a href=\"contact.php?artikelid=$artikelid\">[Interesse? &nbsp;></a></td>";
    echo "</tr>";

    }
    echo "</table>";
} else {
    echo "Er zijn geen artikelen die aan deze criteria voldoen";
}

require "voet.php";
?>



Zo dan sorry. Maar de vraag blijft natuurlijk.

[ Voor 26% gewijzigd door mulleknul op 01-02-2004 14:21 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Professionele website nodig?


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Hier een klein hulpmiddel om snel te zien wat er fout gaat in je queries:
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
28
29
30
31
32
33
function qry ($qry){ 
    $res = @mysql_query($qry);
  if ($res === FALSE ){
      echo()
        echo('
        <div align="center">
            <strong>Mysql Query</strong>
            <strong>'.mysql_errno().' : </strong><em>'.mysql_error().'</em><br>
            <br>
            <table>
            <tr>
                <td>
                    <pre style="    font-family : "Courier New", Courier, monospace;">'.addLineNumbers($qry).'<br>
                    <div style="font-size:2px">'.$qry.'</div></pre>
                </td>
            </tr>
            </table>
        </div>');
        exit;
    }
    return $res;
} 

function addLineNumbers($text){
  $text = str_replace("\t",'  ',$text);
    $lines = explode("\n",$text);
  $out = '';
    $nboLines = count($lines);
    for ($i = 0 ; $i < $nboLines ; $i++){
        $out .= (sprintf('% '.strlen($nboLines).'s',$i+1)) .': ' .$lines[$i] ."\n";
    }
    return $out;
}
Pagina: 1