Hallo,

Ik zit met een probleem ik zou in een tabel een query willen loslaten , die de p_id (4)(Aalst) update van P_id(10)in de E_id

De tabel bevat meerdere records met een ander id natuurlijk.

Dit is hoe het nu is :

id P_id d_id E_id
9844 2 Zwembadlaan 2
9844 4 Aalst
9844 10 2

En het zou dit moeten worden :

id P_id d_id E_id
9844 2 Zwembadlaan 2
9844 4 Aalst
9844 10 2 Aalst

Kan iemand helpen AUB

Dank bij voorbaat
p_id=4 moet op de E_id van P-id=10

Wat is het nou ? p_id of P-id?

update TABELNAAM set E_id = ( select d_id from TABELNAAM where p_id = 4 ) where p_id = 10;

Ik vind dit vrij warrig worden met onduidelijke cryptische veldnamen, maar ik wil er best even mee experimenteren.

Maar dan heb ik toch echt een dumpje nodig met een CREATE TABLE en een INSERT INTO met wat fictieve data.

Misschien zouden duidelijke veldnamen ook helpen.
Ik kreeg op uw query een foutmelding.
Heb nu een klein progje geschreven die de query vervangt.
Alvast bedankt voor de vele moeite.

<?php
$result = mysqli_query($con,"SELECT * FROM tabelnaam WHERE P_id = 4 " );


while ($row = mysqli_fetch_array($result))
{
$ingave = $row["value"];
$id = $row["id"];


$sql = "UPDATE tabelnaam SET E_id = '$ingave' WHERE P_id = 10 and id =$id";


if ($con->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
}
?>
Ik heb nooit ene hele query gegeven. maar ik ben blij dat het gelukt is.
Ik raad je wel aan om fatsoenlijke benaming te gebruiken.
Heb nog een vraagje die jij zeker weet
Progje zoals hierboven blijft even hangen als de E_id een naam is met een ' in zoals 's-Hertogenbosch

Wat kan ik aanpassen in mijn progje?
Je zult mysqli_real_escape_string() op de juiste manier in je query moeten gebruiken.
In dit geval op $ingave en $id.

Je moet altijd je invoer escapen voor de veiligheid. Nu laat je jouw query onbedoeld over een ' struikelen. Maar met SQL-injection kan tevens elke gebruiker je query manipuleren met gevolgen van dien.

Reageren