Beantwoorden
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

Zitten er hier kraks die PHP kennen en vanuit een zoekformulier een Database kunnen doorzoeken? Ik heb al een ganse dag gezocht maar ik kom er niet.  Iemand met kennis van zaken?

 

Titel gewijzigd door Lieselot91 (mod) | Vorige titel: PHP en Mysql



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
Tags (3)
0 Likes
16 reacties
Master-Magic
Professional Superweter
Berichten: 5256
Professional organizer! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

@igvfer kan je iets met deze uitleg en info 

https://www.phphulp.nl/php/forum/topic/database-maken-website/74114/

 

ben even aan het zoeken, ben ook soms bezig met php en sql en ben even aan het zoeken of ik een oplossing heb.


   Master-Magic | Krak
    https://www.master-magic.be
      Vergeet niet om likes te geven en/of als oplossing te markeren.
0 Likes
janne_man
Professional Superweter
Berichten: 5175
Dat verdient een trofee! PhD in problem solving! Een echt antwoordkanon jij! De gouden postveer is voor jou

Hoe een database doorzoeken met PHP en MySQL?

@igvfer 

Vind je niets op deze site?

0 Likes
KelvinUceta
Freshman Veelweter
Berichten: 174
De magic number! Een bus vol! WOW, overzichtelijk! BINGO!

Hoe een database doorzoeken met PHP en MySQL?

@igvfer 

Destijds had ik onderstaande voor een projectje gebruikt:

PHP Search and Display Results from MySQL

 

Grtz,


Dubito, ergo sum
MOBO: ASUS TUF Z690-PLUS - CPU: Core i9-12900K - AIO: Corsair H100i Elite LCD
RAM: 32 GB DDR4 3200 Ghz - GPU: MSI GeForce GTX 1660 SUPER 6G
OS: Win 11 Pro
0 Likes
Arnie
Professional Allesweter
Berichten: 1744
Krak 2021 Krak 2022 Krak Hallo zeg! Wat weet jij niet?

Hoe een database doorzoeken met PHP en MySQL?

Ik gebruik een php script om mijn TNG (The Next Generation of Genealogy Sitebuilding) database uit te lezen, en de output te presenteren in een gendex (CSV) formaat.

Dit script is gebasseerd op wat ik ooit eens ergens gevonden hebt, en sindsdien gebruik ik het ook in gemodificeerde versies, afhankelijk van wat ik wil.

Misschien geeft dit wat inspiratie.

 

<?php
// Version 1.8 Alpha (updated for PHP7 compatibility)

ini_set('max_execution_time', 0);
header ('Content-type: text/plain; charset=utf-8');

include('config.php');

$db = mysqli_connect($database_host,$database_username,$database_password,$database_name) or exit;

if (isset($_GET['g'])) {
        $file = $_GET['g'];
        $sql_file = " AND gedcom='".mysqli_real_escape_string($file)."'";
}
else {
        $sql_file = "";
}

$query = "SELECT gedcom, personID, firstname, lnprefix, lastname, birthdate, birthplace, deathdate, deathplace, burialdate, burialplace, altbirthdate, altbirthplace FROM ".$people_table." WHERE living = '0'".$sql_file;
$result = mysqli_query($db, $query);

while ($row = mysqli_fetch_assoc($result)) {
        $rfn=$row['personID'].'&tree='.$row['gedcom'];
        $fname=$row['firstname'];
        if ($row['lnprefix'] != '') {$row['lnprefix'] = $row['lnprefix'].' ';}
        $sname=strtoupper($row['lnprefix'].$row['lastname']);
        $birtdate=$row['birthdate'];
                if ($birtdate == '') {$birtdate=$row['altbirthdate'];}
                $length = strlen($birtdate);
                $start = $length - 4;
                if ($length > 4) { $birtdate = substr($birtdate, $start); }
        $birtplac=$row['birthplace'];
                if ($birtplac == '') {$birtplac=$row['altbirthplace'];}
        $deatdate=$row['deathdate'];
                if ($deatdate == '') {$deatdate=$row['burialdate'];}
                $length = strlen($deatdate);
                $start = $length - 4;
                if ($length > 4) { $deatdate = substr($deatdate, $start); }
        $deatplac=$row['deathplace'];
                if ($deatplac == '') {$deatplac=$row['burialplace'];}

                $gdline = $rfn;
                $gdline .= "|";
                $gdline .= "|";
                $gdline .= $fname;
                $gdline .= " /";
                $gdline .= $sname;
                $gdline .= "/|";
                $gdline .= intval($birtdate);
                $gdline .= "|";
                $gdline .= $birtplac;
                $gdline .= "|";
                $gdline .= intval($deatdate);
                $gdline .= "|";
                $gdline .= $deatplac;
                $gdline .= "|\r\n";

                print($gdline);

}

mysqli_close($db);

?>

 

In de file config.php staan de credentials for de database toegang, zoals db-name, host, user en password.

Afhankelijk van je wensen kun je natuurlijk de query aanpassen, met meer complexe condities.


   Arnie | Krak
   Meten is weten. Gissen is missen.
    Vergeet niet om likes te geven en/of als oplossing te markeren.
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

Dank u allemaal. Ik heb al van alles geprobeerd. Ik heb wel al eens mijn database kunnen uitlezen maar ik ben vergeten die oplossing apart op te slaan. Ik ben beginnen prutsen en nu ben ik helemaal de weg kwijt.

Ik zoek nog wat verder.



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
0 Likes
janne_man
Professional Superweter
Berichten: 5175
Dat verdient een trofee! PhD in problem solving! Een echt antwoordkanon jij! De gouden postveer is voor jou

Hoe een database doorzoeken met PHP en MySQL?

@igvfer 

Om een Sqlite database uit te lezen gebruik ik altijd hetgeen je vindt op https://sqlitebrowser.org/

Je kan elke uitvoer gemakkelijk exporteren naar een csv.

 

Vroeger (toch al vele jaren geleden, minstens 10 mogelijk zelfs 20) gebruikte ik de ODBC connectie van Windows kon ik met (ik weet niet meer welk programma ik toen gebruikte) een join doen tussen enerzijds een db en anderzijds een Excel.

0 Likes
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

@janne_man  @Arnie  @KelvinUceta @Master-Magic 

Dit is code (zie onderaan) die werkt momenteel. Ik heb nu al verschillende manieren geprobeerd om de output netjes in een tabel te krijgen maar dan loopt het telkens vast. Eerst wil ik dit oplossen.

 

!DOCTYPE html>
<head>

</head>
<html>
<body>
 
<?php>
 
//Inladen van de instellingen.
include 'instellingen.php';
 
$conn = new mysqli($database_adres, $database_login_naam, $database_login_wachtwoord, $database_naam);
//connectie testen
if ($conn->connect_error)
{
	die("verbinding mislukt: ".$conn->connect_error);
} 

$sql = "SELECT * FROM bidprentjes Where Naam ='Apers'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
 // output data of each row

	
 while($row = $result->fetch_assoc()) {
 echo "Naam: " . $row ['Naam']. "Voornaam: " .$row ['Voornaam']  . "Geboorte Datum".$row['geb.datum']."     Overlijden:  ".$row['overl.datum'].  "<br>";
 }
} else {
 echo "geen resulaten!";
}
 
// Sluit de MySQL verbinding.
$conn->close();

 
echo "<br>-- Einde! --";
?>

</body>
</html>

 De volgende stap is om via een formulier te laten zoeken naar een naam of eenzelfde namen.

 

Nu is dit de output. Niet echt netjes. Ik wil een tabel met Naam - Voornaam - Geboortedatum - Overlijdensdatum - link naar het bestand.

 

igvfer_0-1616422344013.png

En dan uiteraard de ganse layout van de pagina netjes maken.



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
0 Likes
KelvinUceta
Freshman Veelweter
Berichten: 174
De magic number! Een bus vol! WOW, overzichtelijk! BINGO!

Hoe een database doorzoeken met PHP en MySQL?

Hi @igvfer,

 

https://www.tutorialrepublic.com/php-tutorial/php-mysql-ajax-live-search.php 

 

Grtz,


Dubito, ergo sum
MOBO: ASUS TUF Z690-PLUS - CPU: Core i9-12900K - AIO: Corsair H100i Elite LCD
RAM: 32 GB DDR4 3200 Ghz - GPU: MSI GeForce GTX 1660 SUPER 6G
OS: Win 11 Pro
0 Likes
janne_man
Professional Superweter
Berichten: 5175
Dat verdient een trofee! PhD in problem solving! Een echt antwoordkanon jij! De gouden postveer is voor jou

Hoe een database doorzoeken met PHP en MySQL?

@igvfer 

Zonder iets te kennen van PHP, zou ik aanbevelen om in html een tabel te maken met vier of vijf kolommen. Bij vier is zet je de naam als zichtbaar deel van de link.

 

Als je hier tot het einde scrolt, is er een voorbeeld om in kolommen te zetten.

0 Likes
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

Met dank voor alle suggesties. Ik ben erin geslaagd om de database uit te lezen naar wens en op de site weer te geven zoals ik het wilde. Inclusief de link naar een bestaand bestand.

Het resultaat ziet er dan zo uit:

igvfer_0-1616509940796.png

 

Enkel nog wat aan de beveiliging werken.



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

Ondertussen nog een stapje verder. Kolommen worden nu ook netjes gesorteerd op Naam en vervolgens op voornaam. Best pittig om tegelijk HTML, PHP en Mysql onder de knie te krijgen. Maar nog veel te leren. Maar ook geleerd dat wat je op internet vindt niet altijd correct is of zelfs verouderd is. Maar combineren van verschillende bronnen lukt uiteindelijk wel. En goed leren kijken of de <>";' tekens wel correct staan. Zeer belangrijk.



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
0 Likes
janne_man
Professional Superweter
Berichten: 5175
Dat verdient een trofee! PhD in problem solving! Een echt antwoordkanon jij! De gouden postveer is voor jou

Hoe een database doorzoeken met PHP en MySQL?

Ik heb me nu juist effe beziggehouden met Javascript en HTML 5. Ik ervoer dezelfde problemen. Het verouderde is gemakkelijker te vinden dan het huidige. Er kan echt niet gezegd worden dat al die talen dode talen zijn.

0 Likes
igvfer
Professional Superweter
Berichten: 7734
Dat verdient een trofee! PhD in problem solving! Organisatietalent! Topic held(in)!

Hoe een database doorzoeken met PHP en MySQL?

@janne_man  Ik heb mij vandaag al zot gezocht hoe ik kan bekomen dat in het zoekveld EN alleen op de letters A tot Z kan gezocht worden EN dat je tevens minimaal 1 letter moet ingeven.

Dit werkt voor de letters:

 

<form class="form-inline" method="post" action="uitlezen4.php">
    <input type="text" name="Naam" class="form-control" pattern="[A-Za-z]" title="Enkel hoofd- en/of kleine letters" placeholder="Zoeken op naam..">
    <button type="submit" name="save" class="btn btn-primary">Zoeken</button>
  </form>

Maar dit pattern wil ik uitbreiden dat er minimaal 1 letter moet ingevoegd worden. Al diverse syntaxen gebruikt maar geen enkel werkt. Nu nog geen probleem want er zitten nog maar 7500 items in de database maar dat worden er in de toekomst nog veel meer.



  Ignace (igvfer) | Krak
  Niets is mooi of lelijk, het is enkel wij die het mooi of lelijk vinden.
  Vergeet niet om likes te geven en/of als oplossing te markeren.
0 Likes
janne_man
Professional Superweter
Berichten: 5175
Dat verdient een trofee! PhD in problem solving! Een echt antwoordkanon jij! De gouden postveer is voor jou

Hoe een database doorzoeken met PHP en MySQL?

@igvfer 

Ik veronderstel dat je een onclick hebt. Voer een sciptje uit waarbij je test of de lengte groter is dan nul dan doe je uw php, anders foutmelding en terug wachten tot een nieuwe klik.

 

Edit:

Het was sport in het nieuws en voor mij is dat geen nieuws.

Ik denk aan zoiets:

<script>
function controle(){
if (invoer.length > 0) {phpfuctie()}
else {eventueel foutmelding;}
} // einde van de functie control
// de else mag weggelaten worden als je geen melding wenst te geven.

</script>

 

Als je al een blok hebt met met een script, kan je dat daarin toevoegen en dan behoud je maar één begin- en eindtag voor script.

 

0 Likes