hallo iedereen. Ik heb onderstaande php script voor het inladen van een kleine proefdatabase. Hoe kan ik nu nadat de gehele database is ingeladen, op zoek gaan naar de waarde van een specifieke rij en alle daarbij behorende waardes van de andere variabelen in die rij wergeven. Nu gebeurd dat wel tijdens in het inladen, maar hoe kan ik dit doen nadat alles is ingeladen? Ik heb het al geprobeerd met een if statement, maar dat lukt niet!
Persoonlijk zou ik kiezen voor de eerste. Dan houd je de variabelen netjes gescheiden van je string.
Ook maakt dit vaak je code beter leesbaarder in je editor.
Ik raad met klem aan om als je $_POST, $_GET, $_COOKIE, $_ENV of $_SERVER als variabele in je query gebruikt, om de variabele te escapen met [php]mysqli_real_escape_string[/php].
Als voorbeeld, ik heb geen idee waar $zoekh2 nu vandaan komt.
<?php
$zoekh2 = $_GET['zoek_kop']
$selection = "SELECT id, h2, subtekst FROM test WHERE h2 = '" . $conn->real_escape_string($zoekh2). "'";
?>
Anders kan iedereen je query manipuleren met de meest extreme queries. Of kan je zelf je query vernielen. Zoek in dat geval maar eens op 's Hertogenbosch. De single-quote wordt dan niet geëscaped en je SQL struikelt erover.
bedankt voor de info. zoek2 is de variabele die ik vooraf heb gedefinieerd waarop gezocht moet worden. Eerder was het een vastgestelde waarde. vandaar.
[size=xsmall]Toevoeging op 10/01/2022 13:27:36:[/size]
ik moet er wel even bij vermelden dat de zoekterm vastgestelde waardes zijn. Er is niemand die een zoekterm kan invoeren voor een querie. Dan is het toch niet noodzakelijk?
[size=xsmall]Toevoeging op 10/01/2022 13:28:35:[/size]
[size=xsmall]Toevoeging op 10/01/2022 13:35:06:[/size]
Wat doet$_GET['zoek_kop'] dan precies?
in dit voorbeeld wordt er dus gezocht naar zoek_kop. Bedoel je in je voorbeeld dat er een liggend streepje is gebruikt en dat bij de andere scripts verkeerd kan gaan? $get voorkomt dit dan?
[size=xsmall]Toevoeging op 10/01/2022 13:37:26:[/size]
oh wacht real_escape_string voorkomt dit. Maar waarom dan get gebruiken?
in dit voorbeeld wordt er dus gezocht naar zoek_kop. Bedoel je in je voorbeeld dat er een liggend streepje is gebruikt en dat bij de andere scripts verkeerd kan gaan? $get voorkomt dit dan?
[size=xsmall]Toevoeging op 10/01/2022 13:37:26:[/size]
oh wacht real_escape_string voorkomt dit. Maar waarom dan get gebruiken?
$zoekh2 = "bla bla"; kan niet?
Je kan een vaste variabele gebruiken, maar vaak is het wenselijk als je een andere uit de genoemde globals ($_GET, $_POST, $_COOKIE etc..) gebruikt, als de inhoud van de variabele wisselend is.
Een $_GET komt uit de URL, maar ik neem aan dat je dit inmiddels wel weet ;-)
En mijn keuze voor een underscore in 'zoek_kop'. Tja, gewoon een voorkeur zonder technische grondslag. 'zoek-kop' of 'zoek-kop' had ook gekund. Geef het beestje maar een naam.
Als je dit nog niet snapt, dan is MySQL een brugje te ver.
Richt je eerst eens op basistechnieken:
Simpel formulier die je invoer toont, simpele rekenmachine, contactformulier met validatie van velden, een scripts met array's die je uitleest, een oefenscript moet cookies en sessies, een script met eigen gemaakte functies, een gastenboekje met txt-bestanden.
Als je dat kan, dan is het pas handig om naar MySQL te kijken. Anders ben ik bang dat je veel (noodzakelijke) theorie zal missen.