ik blijf maar deze error krijgen

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

bij de volgende code

<?
ini_set(display_errors,1);
error_reporting(E_ALL);
include 'dbcon.php';


$query = "SELECT * FROM Klant WHERE email={$_GET['email']}";
mysql_query($query) or die (mysql_error());

print "$query";
while ($output = mysql_fetch_array($query)){


print"
<td>Klant Id:</td>
<td>".$output['klant_id']."</td>
";
}

?>

Nu heb ik al de query geprint, en dan komt er ook een query uit zoals die zou moeten zijn, sterker nog als ik die query kopier naar phpmyadmin werkt die gewoon!

Hoe kan het dan dat die constant die error blijft geven, terwijl die het in php my admin wel gewoon doet
query = "SELECT * FROM Klant WHERE email={$_GET['email']}";

moet zijn:

query = "SELECT * FROM Klant WHERE email='".$_GET['email']."'";

Ook heb je je table naam met hoofdletter als dit ook echt zo is dan klopt het als dit niet zo is ff veranderen. Linux gaat namelijk moeilijk doen(hoofdletter gevoelig).
Probeer het zo eens:
<?php
ini_set(display_errors,1);
error_reporting(E_ALL);
include 'dbcon.php';


$query = "SELECT * FROM Klant WHERE email='".$_GET['email']."'";
mysql_query($query) or die (mysql_error());

print "$query";
while ($output = mysql_fetch_array($query)){


print"
<td>Klant Id:</td>
<td>".$output['klant_id']."</td>
";
}

?>

als hij werkt, kijk dan naar wat er veranderd is en kijk dan ook naar [php]mysql_real_escape_string[/php]()

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'email''' at line 1


<?php
ini_set(display_errors,1);
error_reporting(E_ALL);
include 'dbcon.php';


$query = "SELECT * FROM Klant WHERE email='".$_GET['email']."'";
mysql_query($query) or die (mysql_error());

print "$query";
while ($output = mysql_fetch_array($query)){


print"
<td>Klant Id:</td>
<td>".$output['klant_id']."</td>
";
}

?>


wanneer ik deze code gebruik
bestaan je veldnamen, tabel namen en variabelen wel?

doe eens:

<?php

echo $_GET['email'];

//en

echo $query;

?>
Zo moet hij het doen


<?php
ini_set(display_errors,1);
error_reporting(E_ALL);
include 'dbcon.php';


$query = "SELECT * FROM Klant WHERE email='{$_GET['email']}'";
mysql_query($query) or die (mysql_error());

print "$query";
while ($output = mysql_fetch_array($query)){


print"
<td>Klant Id:</td>
<td>".$output['klant_id']."</td>
";
}

?>
Phpkunst schreef op 02.05.2007 10:45
Zo moet hij het doen


<?php
ini_set(display_errors,1);
error_reporting(E_ALL);
include 'dbcon.php';


$query = "SELECT * FROM Klant WHERE email='{$_GET['email']}'";
mysql_query($query) or die (mysql_error());

print "$query";
while ($output = mysql_fetch_array($query)){


print"
<td>Klant Id:</td>
<td>".$output['klant_id']."</td>
";
}

?>



nee { } tekens horen niet in je query thuis.
pagina oproepen met ?email=a; DROP TABLE *
etcetc
Je gebruikt de mysql_fetch_array() verkeerd (zoals de melding al zegt).
Je moet een 'RECORDSET' als aargument meegeven, en niet de QUERY zelf :P

<?php

$query = "SELECT * FROM Klant WHERE email='".$_GET['email']."'";
$recordset = mysql_query($query) or die (mysql_error()); // Laad recordset

while ($output = mysql_fetch_array($recordset))
{
..
}

?>

Reageren