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!

<?php

$sql = "SELECT id, rij, h2, subtekst FROM test";
$result = $conn->query($sql);


if ($result->num_rows > 0) {

// output data of each row
while($row = $result->fetch_assoc()) {


$id = $row['id'];
$rij = $row['rij'];
$h2 = $row['h2'];
$subtekst = $row['subtekst'];

echo "<br>";
echo "hieronder de echo per rij ";
echo "<br>";

echo "<br>";
echo $id;
echo "<br>";
echo $rij;
echo "<br>";
echo $h2;
echo "<br>";
echo $subtekst;

}
} else {
echo "0 results";
}
$conn->close();
?>
Als je een specifiek item in de tabel zoek, dan moet je die opgeven met de WHERE clausule in je query:

SELECT id, rij, h2, subtekst FROM test WHERE id=4
ah oke. op die manier. bedankt.

[size=xsmall]Toevoeging op 09/01/2022 13:23:02:[/size]

Ik heb het even geprobeerd, maar lukt mij niet. ik heb het de onderstaande script gebruikt. Maar de waarde van h2 wordt niet weergegeven. Zal zeker iets fouts doen of iets vergeten toe te voegen.

$selection = "SELECT id, h2, subtekst FROM test WHERE id=2";
$result = $conn->query($selection);

echo $row['h2'];
Waar komt $row vandaan?
Je moet wel fetch_assoc gebruiken.
is 1 of andere database php variale. wanneer de database wordt geladen staat dit in het begin. ik had dit even uit het script van eerder in dit topic weggelaten.

$sql = "SELECT id, rij, h2, subtekst FROM test";
$result = $conn->query($sql);


if ($result->num_rows > 0) {

// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - rij: " . $row["rij"]. " - h2: " . $row["h2"]. " - subtekst: " . $row["subtekst"]. "<br>";

[size=xsmall]Toevoeging op 09/01/2022 13:29:01:[/size]

$row komt als variabele niet voor in mijn database in ieder geval.
fetch_assoc() zorgt ervoor dat het resultaat uit de database omgezet wordt naar een array.

Een while() lus met fetch_assoc() is in deze situatie enkel nodig als je één of meerdere resultaten verwacht. Een fetch_assoc() zonder while() levert enkel het eerste gevonden item uit de database op.
ah oke. bedanktvoor de extra info. ik heb nu onderstaande script en werkt. Is dat technisch goed geschreven zo?

$selection = "SELECT id, h2, subtekst FROM test WHERE id=2";
$result = $conn->query($selection);

while($row = $result->fetch_assoc()) {
echo $row['h2'];

}
Prima, maar als je expliciet één item verwacht is een while() { } om je fetch_assoc() niet nodig. Zie ook mijn vorige post.
ja gezien ja. zal dat ook nog even testen.

[size=xsmall]Toevoeging op 09/01/2022 13:48:38:[/size]

damm. kom er niet aan uit wat het script is zonder while. al van alles geprobeerd.


[size=xsmall]Toevoeging op 09/01/2022 14:01:20:[/size]

is inmiddels al gelukt,

[size=xsmall]Toevoeging op 09/01/2022 14:04:29:[/size]

onderstaande gebruikt:

$row = $result->fetch_assoc();
echo $row['h2'];





[size=xsmall]Toevoeging op 09/01/2022 14:04:54:[/size]

had een spellingsfout gemaakt blijkbaar.
Een goede tip: Als je een goede editor gebruikt, dan moeten dergelijke spellingsfoutjes of syntaxfouten vaak wel opvallen.

Ikzelf gebruik Apache Netbeans.
ja klopt. was eigenlijk ook geen spellingssfout maar verkeerde geformuleerde script die niet werkte.
Ik gebruik bbedit.

[size=xsmall]Toevoeging op 10/01/2022 12:22:55:[/size]

Het lukt allemaal al aardig. Ik wil echter where h2='2'. vervangen door een eerder gedefineerde variable. dus stel ik heb $zoekh2 = "bla bla"; hoe kan ik de 2 dan vervangen voor die variabele. heb al geprobeerd where h2=$zoekh2. maar dat werkt niet. Iemand een idee? bedankt voor de input.

$selection = "SELECT id, h2, subtekst FROM test WHERE h2='2'";

Reageren