Beste,

Ik ben bezig met een systeem in php.
Ik heb de code al maar deze werkt helaas niet.

Hier even een snelle uitleg over de code.
Hij zou een userid moeten ophalen uit de database en deze vervolgens weer in een andere database moeten zetten.
Dit werkt niet. Het gaat over $userid = $row2['userid'];

Hier de code (sorry dat het een zooi is!):

<?php

include("dimitrigeers.php");

$stadid = $_GET['stad'];

$sql = mysql_query("SELECT * FROM steden WHERE stadid='".$stadid."' ");
$row = mysql_fetch_assoc($sql);

$sql2 = mysql_query("SELECT * FROM vrijwilliger ORDER BY userid");

$submit = $_POST['submit'];

if($submit){

	mysql_query("
	   
	INSERT INTO aanwezigen VALUE ('','$userid','$stadid')
	   
	");
	
	echo "Succesvol opgeslagen!";

}

?>
<html>

<head>
<title><?php echo $row['naam']; ?> | EVENTS4U</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0" />
</head>

<body>

<?php

echo "<a href='index.php'>Ga terug</a><br /><br /><b>".$row['naam']." ".$row['datum']."</b><br /><br />";

echo "<form action='stad.php?stad=".$stadid."' method='POST'>";

while($row2=mysql_fetch_assoc($sql2)){
echo "<input type='checkbox' name='".$row2['naam']."'> ".$row2['naam']." ".$row2['rang']."<br />";
$userid = $row2['userid'];
}

echo "<br /><input type='submit' name='submit' value='Opslaan'>";

echo "</form>";

?>

</body>

</html>



Hopelijk kan iemand mij helpen.

Met vriendelijke groet,
Dimitri Geers
En het is:

or die(mysql_error());

Alhoewel het niet de beste manier is om fouten op te vragen.
Frank Martens

Regel 18: Je gebruik INSERT INTO. Ooit al naar de juiste INSERT gekeken? Je geeft niet aan wat er geinsert moet worden:

Dat hoeft ook niet als het aantal waarden in de VALUES list overeenkomt met het aantal kolommen in de tabel.
Neemt niet weg dat het vele voordelen heeft om het wel te doen.
Klopt inderdaad Ger, alleen als je 1 veld toevoegt kan je alle scripts weer wijzigen. Beter in 1x goed, levert in de toekomst minder problemen op. Tevens mysqli gebruiken, Mysql gaat er op termijn uit.

Heb je ook alle andere error's aanstaan?
Frank Martens op 03/02/2014 19:13:15

Klopt inderdaad Ger, alleen als je 1 veld toevoegt kan je alle scripts weer wijzigen. Beter in 1x goed, levert in de toekomst minder problemen op. Tevens mysqli gebruiken, Mysql gaat er op termijn uit.

Heb je ook alle andere error's aanstaan?


De volgende code heb ik nu:


<?php

include("dimitrigeers.php");

if(isset($_GET['stad'])){ // Controleren of stad in de link staat
$stadid = mysql_real_escape_string($_GET['stad']); // Extra beveiliging
}

$sql = mysql_query("SELECT * FROM steden WHERE stadid='".$stadid."' ") or die('Invalid query: ' . mysql_error());;
$row = mysql_fetch_assoc($sql);

$sql2 = mysql_query("SELECT * FROM vrijwilliger ORDER BY userid") or die('Invalid query: ' . mysql_error());;

$userid = $row2['userid'];

if(isset($_POST['submit'])){

    mysql_query("
       
    INSERT INTO aanwezigen(id,userid,stadid) VALUES ('','$userid','$stadid')
       
    ") or die('Invalid query: ' . mysql_error());;
    
    echo "Succesvol opgeslagen!";

}

?>
<html>

<head>
<title><?php echo $row['naam']; ?> | EVENTS4U</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0" />
</head>

<body>

<?php

echo "<a href='index.php'>Ga terug</a><br /><br /><b>".$row['naam']." ".$row['datum']."</b><br /><br />";

echo "<form action='stad.php?stad=".$stadid."' method='POST'>";

while($row2=mysql_fetch_assoc($sql2)){
echo "<input type='checkbox' name='".$row2['naam']."'> ".$row2['naam']." ".$row2['rang']."<br />";
}

echo "<br /><input type='submit' name='submit' value='Opslaan'>";

echo "</form>";

?>

</body>

</html>

Zet de errors eens aan.
Dan zie je zelf wat er fout gaat.

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest vab het script
?>
- SanThe - op 03/02/2014 21:48:00

Zet de errors eens aan.
Dan zie je zelf wat er fout gaat.

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest vab het script
?>


Notice: Undefined variable: row2 in /home/ldekrma109/domains/ldekrakertransport.nl/public_html/events4u/stad.php on line 17

Dit krijg ik
Klopt.
Die bestaat daar ook niet.
- SanThe - op 03/02/2014 21:58:47

Klopt.
Die bestaat daar ook niet.


Hoe kan ik dit oplossen?
Doe het zo:


<?php
#$row = mysql_fetch_assoc($sql); // WEGHALEN
while($row = mysql_fetch_assoc($sql)){
$userid = $row['userid'];
}
?>


Als je nogsteeds de error krijgt ligt het nietmeer aan je query, maar aan de database.

E: Typo
Logica aanpassen.
Je bent trouwens al aan het echoën voordat je <html> begint.
En html verwacht dubbele quotes, geen enkele.

Reageren