*Bijgewerkt*

Volgens mij heb ik het terug kunnen brengen tot de variabelen.
Zo'n 10 jaar terug gebruikte ik b.v. '%$ZAchternaam%'
Het formulier bevat 5 categorieën waar je op kan zoeken.
Nummer
achternaam
voornamen
geboortedatum
overlijdensdatum

In de zoekfunctie hoef je niet op alles te zoeken, maar op delen.

Als je alleen geboortedatum 1927 in vult, zou hij alle documenten moeten vinden van personen die in 1927 zijn geboren. Daarom gebruikte ik % als wildcards. Net als vroeger een * in MSDOS (voor de oudjes)

De onderstaande code werkt wel voor achternaam, mits ik die volledig invul.


<?php

session_start();

//Om foutmeldingen in beeld te krijgen  - alleen tijdens debuggen!:
ini_set('display_errors',true);
error_reporting(E_ALL);

include('config.php');

//         uitlezen gegevens uit formulier
if(isset($_POST["SUBMIT"])) {
 echo "formulier verzonden <br>";
$Zidnr = $_POST['Zidnr'];
$ZAchternaam = $_POST['ZAchternaam'];
$ZVoornamen = $_POST['ZVoornamen'];
$Zgeboortedatum =$_POST['Zgeboortedatum'];
$Zoverlijdensdatum =$_POST['Zoverlijdensdatum'];


//    hier wilde ik zoeken op een deel van de invoer
//$Zidnr ='%$Zidnr%';
//$ZAchternaam ='%'.$ZAchternaam.'%';     werkt ook niet
//$ZVoornamen ='%$ZVoornamen%';
//$Zgeboortedatum ='%$Zgeboortedatum%';
//$Zoverlijdensdatum ='%$Zoverlijdensdatum%';

echo "Zoek id: ".$Zidnr." achternaam: ".$ZAchternaam." avoornamen: ".$ZVoornamen." geboren: ".$Zgeboortedatum." overleden: ".$Zoverlijdensdatum." <br> "    ;
echo "<table>";

//           Verbind met database
 try
        {
// -->  $pdoResult = $pdoConnect->prepare("SELECT * FROM db_bidprentjes WHERE id=:id AND achternaam=:achternaam AND voornaam=:voornaam AND geboortedatum=:geboortedatum AND overlijdensdatum=:overlijdensdatum");
// voor testen beperkt tot alleen achternaam

        $pdoResult = $pdoConnect->prepare("SELECT * FROM db_bidprentjes WHERE  achternaam=:achternaam ");
        $pdoResult->bindValue(':id', $Zidnr);
        $pdoResult->bindValue(':achternaam', $ZAchternaam);
        $pdoResult->bindValue(':voornaam', $ZVoornamen);
        $pdoResult->bindValue(':geboortedatum', $Zgeboortedatum);
        $pdoResult->bindValue(':overlijdensdatum', $Zoverlijdensdatum);
// -->  $pdoResult->execute(array(':id' => $Zidnr, ':achternaam' => $ZAchternaam, ':voornaam' => $ZVoornamen, ':geboortedatum' => $Zgeboortedatum, ':overlijdensdatum' => $Zoverlijdensdatum ));
        $pdoResult->execute(array(':achternaam' => $ZAchternaam ));

        while($row = $pdoResult->fetch(PDO::FETCH_ASSOC)) {
        $Tid=$row['id'];
        $Tgedcomnummer=$row['gedcomnummer'];
        $Tachternaam=$row['achternaam'];
        $Tvoornamen=$row['voornaam'];
        $Tvoorzetsel=$row['voorzetsel'];
        $Tgeboortedatum=$row['geboortedatum'];
        $Tgeboorteplaats=$row['geboorteplaats'];
        $Toverlijdensdatum=$row['overlijdensdatum'];
        $Toverlijdensplaats=$row['overlijdensplaats'];
        $TP1_naam = $row['P1_naam'];
        $TP2_naam = $row['P2_naam'];
        $TP3_naam = $row['P3_naam'];


$TPsamen = $TP1_naam.", ".$TP2_naam.", ".$TP3_naam;
if ($TP3_naam == "0")   { $TPsamen = $TP1_naam." ".$TP2_naam;  }
if ($TP3_naam == "")   { $TPsamen = $TP1_naam." ".$TP2_naam;  }
if ($TP2_naam == "0")   { $TPsamen = $TP1_naam;  }
if ($TP2_naam == "")   { $TPsamen = $TP1_naam;  }


echo "<tr>";
echo "    <td width=\"4%\" ><a href=\"Bidpr_view.php?zid=".$Tid."\">&nbsp;".$Tid."</a></td> ";
echo "    <td width=\"24%\" >&nbsp;".$Tachternaam.", ".$Tvoornamen." ".$Tvoorzetsel."</td> ";
echo "    <td width=\"24%\" >&nbsp;".$Tgeboortedatum.", ".$Tgeboorteplaats."</td>";
echo "    <td width=\"24%\" >&nbsp;".$Toverlijdensdatum.", ".$Toverlijdensplaats."</td>";
echo "    <td width=\"24%\" >&nbsp;".$TPsamen."</td>";
echo "</tr>";

    } // while
    }     // einde try

        catch(PDOException $e){
        echo $e->getMessage();
            }    // einde catch

}    // einde isset
echo "</table>";
echo "<br>";
echo "<hr>";
//sluit de verbinding


?>

<table width="50" border="0">
<form method="post"  enctype="multipart/form-data">

<table>
  <tr><td>ID nummer</td>
    <td><input type="text" name="Zidnr" value=""></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr><td>Achternaam</td>
    <td><input type="text" name="ZAchternaam" value=""></td>
    <td>&nbsp;</td>
    <td>&nbsp;Volledig of deel van naam</td>
  </tr>
  <tr><td>Voornamen</td>
    <td><input type="text" name="ZVoornamen" value=""></td>
    <td>&nbsp;</td>
    <td>&nbsp;Volledig of deel van naam</td>
  </tr>
  <tr><td>Geboortedatum</td>
    <td><input type="text" name="Zgeboortedatum" value=""></td>
    <td>&nbsp;</td>
    <td>&nbsp;formaat dd-mm-jjjj</td>
  </tr>
  <tr><td>Overlijdensdatum</td>
    <td><input type="text" name="Zoverlijdensdatum" value=""></td>
    <td>&nbsp;</td>
    <td>&nbsp;formaat dd-mm-jjjj</td>
  </tr>
  <tr><td></td>
    <td><input type=SUBMIT name="SUBMIT"  value="Verzenden !"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>

Bovenaan zetten (alleen tijdens debuggen!):

ini_set('display_errors',true);
error_reporting(E_ALL);

Of indien mogelijk in je logs kijken

(kan ik deze ergens op een tegeltje krijgen?)
die code staat er boven in regel 6 en 7.
Maar zover komt het script niet
Kijk eens in de error_log?
Waar vind ik zo'n error log?
Dat ligt een beetje hoe je webhosting pakket op de server ingesteld is. Vaak staat dat op de FTP buiten de webroot, en anders kan je vast wel in het webhosting-controlepaneel een verwijzing vinden naar je error_log.

Kan je niet vinden vertel dan even welk controlepaneel je gebruikt.

Anders kan je ook in .htaccess een locatie van een zelf aangemaakt logbestand aanwijzen.
De http error 500 krijg ik niet meer. Maar na het formulier krijg ik niets.

webhosting paneel staat directadmin boven.
$PHP_SELF bestaat overigens al 10 jaar niet meer.

Zet eens direct na de plek waar je je formulier controleert een echo neer. Na regel 12 dus.
$PHP_SELF er uit gehaald, samen met action.
Ik heb er 2 echo opdrachten in staan, welke hij vindt. Dus de query vindt de dat niet. :`-
Wat loopt hij dan nu op vast?
Ik zie nergens een connectie?
connectie zat in config. Heb het terug kunnen brengen tot de % tekens.
Vroeger kon je met 'wildcards' werken, b.v. in zoeken op Huit* , dit gaf alles wat begon met Huit. In mysql was het vele jaren terug Huit% ... , maar nu niet meer dus. Nu nog uitvinden hoe dat nu moet

Reageren