De volgende fout krijg ik:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/radiobood/www/rep3.php on line 6
niets gevonden ?>

Hier het stukje script:
<?

$sql = "SELECT * FROM tabel WHERE Merk = '%zoekterm hier%'";
$res = mysql_query($sql);

if (mysql_num_rows($res) >= 1) // dit is lijn 6
{
while ($row = mysql_fetch_array($res))
{
echo "Gevonden met id nr. " . $row['id'];
}
}
else
echo "niets gevonden";

Wie kan mij helpen??
<?
$db = @mysql_connect("localhost","test","test") or Die (mysql_error());
?>

Heeft geen zin, mysql_error() werkt alleen als er verbinding is met de databaseserver. Als daarmee niet verbonden kan worden geeft het ook geen foutmelding terug met mysql_error()

>= 1 kan ook gewoon > 0 worden denk ik, leest makkelijk gewoon groter dan 0 ipv 1 of meer. Maar dat is persoonlijk :P

Verder, weet je echt zeker dat je verbinding hebt met de database, want je vangt je foutmeldingen af met @ dus als er geen verbinding gemaakt kan worden zal er nooit wat van op het scherm verschijnen. Dat soort manieren om fouten af te vangen moet je pas toevoegen als je script helemaal af is en het zeker weten 100% werkt. Al zou het dan al niet meer nodig moeten zijn.
Parse error: parse error, unexpected T_IF in /home/radiobood/www/rep3.php on line 3

Nu heeft hij deze error ?
Script
<?
error_reporting(E_ALL)
if(isset($_POST['submit']))
{
$db = mysql_connect("localhost","test","test") or Die (mysql_error()); //login gegevens

mysql_select_db("radiobood",$db) or Die ("Error: " . mysql_error()); //database selectie
$zoeknaar = $_POST['zoeknaar'];
$sql = "SELECT * FROM tabel WHERE (Merk LIKE '%$zoeknaar%')";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) // dit is lijn 5
{
while ($row = mysql_fetch_array($res))
{
echo "Gevonden met id nr. " . $row['id'];
}
}
else
{
echo "niets gevonden";
}
}
?>
<form method="post">
Zoek naar gegevens:<br />
<input type="text" name="zoeknaar" value="zoekwoord" /><br />
<input type="submit" name="submit" value="Zoek!" />
</form>
En ja, ik denk echt dat ik verbinding heb.
Ik hoop dat jullie me toch nog verder kunnen helpen.
error_reporting(E_ALL);
en geen
error_reporting(E_ALL)
Hij loopt nu vast op line 11, Hij zou moeten zoeken in kolom Merk b.v. naar merk Sony

Nog een idee
Post regel 10 11 en 12 dan ff ;)

Maar inprincipe zou:
$sql = "SELECT * FROM `tabel` WHERE `Merk` LIKE '%$zoeknaar%'";
moeten volstaan. Mss staan globals uit en moet je met superglobals werken?

k denk dat een FULLTEXT search hier niet echt zal helpen. Die LIKE moet voldoende zijn. Post de SQL code eens die je heb ingevoerd bij je database. Mss zit daar de fout? (Je post de error's niet dus schiet niet echt op ;) )
Ik begrijp dat het script eigenlijk moet werken, maar toch niet.
Ik weet een klein beetje wat globals ed zijn ($_GET['var'] en $_POST['var']. ) maar weet ze niet toe te passen, is het mogelijk en niet te veel gevraagd of je me daar mee wilt helpen?
Het zecht me niet zo heel veel wat hier onder staat.

Ik heb geen eigen server, moet ik daar waar het script staat (op de server) iets veranderen?


Post regel 10 11 en 12
Mss staan globals uit en moet je met superglobals werken
Post de SQL code eens die je heb ingevoerd bij je database
Ik heb dit nog geprobeerd op de site van mijn host.
$sql = 'SELECT * '
. ' FROM `Reparatie` '
. ' WHERE 1 AND `Merk` '
. ' LIKE \'Sony\' LIMIT 0, 30';
Dit werkte, het lijkt mij dat als je dit op de juiste plaats toe voegt aan het script dat het zou moeten werke.

Heb ik dat goed????

Reageren