Met PHP database doorzoeken

Status
Niet open voor verdere reacties.

jacobboersma

Gebruiker
Lid geworden
11 sep 2007
Berichten
428
Ik wil met PHP een mysql database doorzoeken. Ik heb het volgende script gemaakt. Maar wat ik ook doe ik krijg steeds de foutcode "Er is iets fout gegaan bij het zoeken in de database." in beeld. Dit is het script:
PHP:
<?php
include "connect.php";

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, E-mailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
    if($result = mysql_query($query))
    {
        echo 'De volgende resultaten zijn gevonden:<br />';
        while($row = mysql_fetch_assoc($result))
        {
            echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['E-maladres'];;
        }
    }
    else
    {
        echo 'Er is iets fout gegaan bij het zoeken in de database.';
    }
}
else
{
    ?>
    <form method="POST" action="zoekreg.php">
    Geef ID: <input type="text" name="zoekwoord" />
    <input type="submit" value="Verzenden" />
    </form>
    <?php
}

?>
Wat doe ik fout?
 
Heb je voor mij even de sql van je database waar jou script in moet zoeken?

Dan kan ik even testen
 
Gooi onder die foutmelding eens deze:

PHP:
echo mysql_error()

Dan zie je ook wat er fout gaat.
 
Ik heb het script nu zo:
PHP:
<?php
include "connect.php";

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, E-mailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
    if($result = mysql_query($query) or die(mysql_error())
    
        echo De volgende resultaten zijn gevonden:<br />';
        while($row = mysql_fetch_assoc($result))
        {
            echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['E-maladres'];;
        }
    }
    else
    {
        echo 'Er is iets fout gegaan bij het zoeken in de database.';
    }
}
else
{
    ?>
    <form method="POST" action="zoekreg.php">
    Geef ID: <input type="text" name="zoekwoord" />
    <input type="submit" value="Verzenden" />
    </form>
    <?php
}

?>
Het staat op www.pieterstuyvesantkuiertochtinschrijven.nl/new/zoekreg.php

Wat bedoel je met de SQL van de database? Is dat het bestand connect.php?
 
Laatst bewerkt:
Je krijgt nu een error, op regel 8 moet er nog een { staan :thumb:
 
Zie hieronder:
PHP:
<?php
include "connect.php";
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, E-mailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
    if($result = mysql_query($query) or die(mysql_error())
    {
        echo 'De volgende resultaten zijn gevonden:<br />'; //hier een aanhalingsteken vergeten voor aan de ECHO
        while($row = mysql_fetch_assoc($result))
        {
            echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['E-maladres'];//; hoeft niet 2x;)
        }
    }
    else
    {
        echo 'Er is iets fout gegaan bij het zoeken in de database.';
    }
}
else
{
    ?>
    <form method="POST" action="zoekreg.php">
    Geef ID: <input type="text" name="zoekwoord" />
    <input type="submit" value="Verzenden" />
    </form>
    <?php
}
 
?>
 
Ja klopt, bij verder kijken dan syntaxkleuring, zie ik dat je ook iets onlogisch doet.
PHP:
if($result = mysql_query($query) or die(mysql_error())
    {

je zegt hier: als $result is de uitvoer van de query anders geef fout, en daaronder heb je nog een anders(else) statement..

dat kan niet....

waar heb je deze code weg?

EDIT: en wat wil je precies dat het doet?
 
Laatst bewerkt:
Ik heb geen idee meer waar ik het weg heb.
Het gene wat ik er echt mee wil doen is dat: iemand een registratienummer(ID) invoerd en het e-mailadres. Vervolgens wil ik dan dat zijn gegevens in beeld komen. En die persoon de data kan aanpassen.

Is hier misschien dan een ander script voor beschikbaar?
 
Laatst bewerkt door een moderator:
Dit zou moeten volstaan om de gegevens op te halen:

PHP:
<?php
include "connect.php";
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, E-mailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
  $result =   mysql_query($query) or die(mysql_error());
	 while($row = mysql_fetch_assoc($result))    {
        
		echo 'De volgende resultaten zijn gevonden:<br />';
        echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['E-maladres'];
        }
    
    


    ?>
    <form method="POST" action="">
    Geef ID: <input type="text" name="zoekwoord" />
	
    <input type="submit" value="Verzenden" />
    </form>
    <?php
}
 
?>
 
ahum , klopt, mijn fout, de if moet afgesloten worden voor het form met de "}".

Nu vraag je als de server een post krijgt doe dan alles tussen{}, nu krijg je natuurlijk geen form, omdat de server eerst een post verwacht.

Plaats de laatste } maar eens boven je form
 
Het script ziet er nu zo uit:
PHP:
<?php
include "connect.php";
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, E-mailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
  $result =   mysql_query($query) or die(mysql_error());
     while($row = mysql_fetch_assoc($result))    {
        
        echo 'De volgende resultaten zijn gevonden:<br />';
        echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['E-maladres'];
        }
    
    
 
 }
    ?>
    <form method="POST" action="">
    Geef ID: <input type="text" name="zoekwoord" />
    
    <input type="submit" value="Verzenden" />
    </form>
    <?php
 
?>
Als ik nu als bij id "1" ingeef. Waar dus data onder staat. Dan krijg ik een foutmelding namelijk: Unknown column 'E' in 'field list'

Wat heb ik fout gedaan?
 
hoogstwaarschijnlijk zit het hier:

PHP:
"SELECT ID, Voornaam, E-mailadres FROM

E-mailadres breekt hij af, en blijft E over dat veld bestaat dus niet in je kolom.
Heten je velden zo als je ze beschrijft?
 
Het werkt. Helemaal super.
Nu wil ik graag nog dat de gegevens worden geladen in een form.
 
Laatst bewerkt door een moderator:
Nu wil ik graag nog dat de gegevens worden geladen in een form.
We zijn hier natuurlijk niet om je complete script voor je te schrijven, probeer zelf eens wat, en kom je er niet uit post wat je hebt en wat er fout gaat, dan geven we je advies;)

kleine tip:
HTML:
<input type="text" name="naam" value="<?php echo $naam; ?>" />
//zo kun je dus de gezette waarde ophalen in een form element
 
Laatst bewerkt:
ik heb nu dit script
PHP:
<?php
include "connect.php";
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $query = "SELECT ID, Voornaam, Emailadres FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['zoekwoord'])."%'";
  $result =   mysql_query($query) or die(mysql_error());
     while($row = mysql_fetch_assoc($result))    {
        
        echo 'De volgende resultaten zijn gevonden:<br />';
        echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['Emailadres'];
		<input type="text" name="Voornaam" value="<?php echo ['Voornaam']. ?>" />
    }
	}
    
 
 
    ?>
    <form method="POST" action="">
    Geef ID: <input type="text" name="zoekwoord" />
    
    <input type="submit" value="Verzenden" />
    </form>
    <?php
 
?>

Toch blijft hij een foutmedling geven op: http://pieterstuyvesantkuiertochtinschrijven.nl/new/zoekreg.php

Wat doe ik fout?
 
Omdat je HTML oproept in php, dat ken niet.

PHP:
 echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['Emailadres'];
        <input type="text" name="Voornaam" value="<?php echo ['Voornaam']. ?>" />

PHP:
//probeer m zo:
 echo $row['ID'].'<br />'.$row['Voornaam'].'<br />'.$row['Emailadres'];
    echo'<input type="text" name="Voornaam" value='.$row['Voornaam']. ' />' ;
//op deze manier pers je dus je HTML in een PHP echo., overigens wat je deed:
 echo ['Voornaam'].
// gaat ook niet, hoe weet php op deze manier wat voornaam is, en wat ie moet doen?
 
Laatst bewerkt:
Ik ben wat met het script aan de gang gweest en nu werkt het niet meer. Wat doe ik fout? Kan ik als ik de gegevens heb opgevraagd en hij ze heeft geladen in het formulier. Dat ik dan een knop wijzigingen maak en hij de gegevens wijzigd. Ik heb al wat gebrobeerd. Maar volgens mij kun je maar een keer POST gebruiken in een script. Ook wil ik graag zoeken op ID en E-mailadres. Dus dat ze beiden in moeten vullen.
PHP:
<?php
include "connect.php";
if($_SERVER['REQUEST_METHOD'] == 'POST')

{
    $query = "SELECT ID, Voornaam, Tussenvoegsel, Achternaam, Straatnaam, Huisnummer, Toevoegsel, Postcodecijfers, Postcodeletters, Woonplaats, Emailadres,  
	FROM inschrijvingen2011 WHERE ID LIKE '%".mysql_real_escape_string($_POST['registratienummer'])."%'";
  $result =   mysql_query($query) or die(mysql_error());
     while($row = mysql_fetch_assoc($result))    {
        
        echo 'De volgende resultaten zijn gevonden:<br />';
		echo'<input type="text" name="Voornaam" value='.$row['Voornaam']. ' />' ;
    }
	}
    
 ?>
<form method="POST" action="">
    Registratienummer: <input type="text" name="registratienummer" /><br>

    <input type="submit" value="Verzenden" />
    </form>
<?php
 
    ?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan