Hallo allemaal,

Ik moet iets maken dat als er checkboxen worden aangevinkt die in de database gezet worden.

Nu heb ik dit:

<?
$host="localhost";
$username="root";
$password="usbw";
$db_name="Fruit";
$tabel="Fruitkeus";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$Appel="appel"
?>

<h1>Fruit</h1>

Wat heb je liever?
<form action="" method="post">
<input type="radio" name="fruit" value="Appel" />Appel <br />
<input type="radio" name="fruit" value="Peer" />Peer <br />

<input type="submit" value="Opslaan">
</form>



<?php
/* check of ze hier komen via formulier */
{
/* met $_POST['fruit'] krijg het nummer dat hoort bij het gekozen stuk fruit */
$fruit = $_POST['fruit'];
if(!empty($fruit))
{
$sql = "INSERT INTO $tabel (Lotnummer) VALUES ('" . $fruit . "')";
$query = mysql_query($sql) or die (mysql_error());
}
else
{
echo"Je hebt niks gekozen.";
}
}

?>

Dit werkt Prima maar nu wil ik het volgende:

Ik heb gegevens die uit een database gehaald worden en op het scherm geprint worden doormiddel van dit <? echo $rows['Vruchten']; ?> (hiermee print hij alle gegevens die in de kolom vruchten staan op het scherm) hoe kan ik achter alle resultaten een checkbox zetten en die vervolgens in de database zetten ?
Ik hoop dat iemand mij nog volgt....
Kan iemand mij helpen ?
Hallo,
Even een paar puntjes:

Controleren als er gepost is doe je beter zo:

if(($_SERVER['REQUEST_METHOD'] == "POST"){
// hier komt de code als er gepost is
}
else {
// het formulier laten zien!
}


Voor sql injection gebruik je beter mysql_real_escape_string. Duizend keer veiliger.
Voorbeeldje
'".mysql_real_escape_string($fruit)."'


Ik mis ook een deftige foutafhandeling, ik verwijs je hier door naar een zeer goede tutorial!
Linkje

Daar kan je ook alles van jouw op toepassen van je Insert Query, tevens is het veiliger, is er een foutafhandeling ...
Er is ook één voor het ophalen van gegevens maar die is zonder while.

Op jouw vraag,

Als je query gelukt is, dan zet je tussen de { en } :


while($row_fruit = mysql_fetch_assoc($sql)) {
    echo '<input type="radio" name="vruchten" value="'.$row_fruit['Vruchten'].'" 
}




Voorbeeld van je vraag:
<?php

# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit

# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}



# zet dit waar je query moet

# de query | bij input: let op sql-injectie -> mysql_real_escape_string()
$sql_get_fruit = "SELECT vruchten
FROM fruit
";

# Check of query is gelukt
if (($result_get_fruit = mysql_query($sql_get_fruit)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($sql_get_user,mysql_error(),'Fout met het ophalen van de vruchten.');
}
elseif (mysql_num_rows($result_get_user) == 0)
{
# De query is gelukt en we hebben net gekeken met _num_rows of er een rij is:

# -> Als er geen rij is echoën we hier:
echo 'Er bevinden zich nog geen vruchten in de database';
}
else
{
# Hier is er wel een rij dus ->

#we kunnen onze naam uit de database halen d.m.v. mysql_fetch_assoc
while($row_fruit = mysql_fetch_assoc($sql_get_fruit)) {
echo '<input type="radio" name="vruchten" value="'.$row_fruit['Vruchten'].'" />'.$row_fruit['Vruchten'].'<br />';
}
?>
Waar gaat het fout? Het plaatsen van de checkbox of het verwerken in de database?
Bedankt vooor jullie (snelle) antwoord ik ga even prutsen
Dat is toch bijna het antwoord?
Als het aangevinkt is, dan bevind het zich in een post:

Daarna in een lijst plaatsen:
$lijst = implode( ', ', $_POST['vruchten'] );

Daar in de query moet je $lijst gebruiken.
Het werkt nog niet... ik heb nu dit


<h1>Fruit</h1>

Wat heb je liever?
<form action="" method="post">
<input type="radio" name="fruit" value="Appel" />Appel <br />
<input type="radio" name="fruit" value="Peer" />Peer <br />

<input type="submit" value="Opslaan">
</form>



<?php
/* check of ze hier komen via formulier */
{
/* met $_POST['fruit'] krijg het nummer dat hoort bij het gekozen stuk fruit */
$fruit = $_POST['fruit'];
if(!empty($fruit))
{
# de query | bij input: let op sql-injectie -> mysql_real_escape_string()
$sql_get_fruit = "SELECT Vruchten
FROM fruit
";
}
# Check of query is gelukt
if (($result_get_fruit = mysql_query($sql_get_fruit)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($sql_get_user,mysql_error(),'Fout met het ophalen van de Vruchten.');
}
elseif (mysql_num_rows($result_get_user) == 0)
{
# De query is gelukt en we hebben net gekeken met _num_rows of er een rij is:

# -> Als er geen rij is echoën we hier:
echo 'Er bevinden zich nog geen Vruchten in de database';
}
else
{
# Hier is er wel een rij dus ->

#we kunnen onze naam uit de database halen d.m.v. mysql_fetch_assoc
while($row_fruit = mysql_fetch_assoc($sql_get_fruit)) {
echo '<input type="radio" name="Vruchten" value="'.$row_fruit['Vruchten'].'" />'.$row_fruit['Vruchten'].'<br />';
}
}
?>


[size=xsmall]Toevoeging op 25/04/2012 18:00:27:[/size]

even voor de duidelijkheid, ik wil dus de gegevens die ik uit een kolom van tabel A haal printen op het scherm, vervolgens wil ik die selecteren en dan achter elkaar in een kolom in Tabel B zetten

voorbeeld

Uit tabel A word dit geprint

Hallo
Hallo
Hallo

Dan wil ik in een kolom in tabel B hallo hallo hallo gezet word..

sorry nogal ingewikkeld
Geef eens een concreet voorbeeld. Kan me niet voorstellen dat 3x hallo is wat je zoekt :-)
En waarom zou je die (drie) waarden achter elkaar willen zetten? Gaat je later, vermoedelijk, problemen geven. Maar met jouw voorbeelden is dat niet te beoordelen.

Voor checkboxen, kijk bv eens op http://www.html-form-guide.com/php-form/php-form-checkbox.html
dit had ik al verwacht ;)
ik zal het nog eens proberen:

Van Tabel A worden de volgende gegevens geprint:

001
002
003

Dan wil ik door middel van een checkbox bijvoorbeeld 001 en 002 selecteren en dan als op de knop opslaan word gedrukt het volgende gebeurt:

In Tabel B in 1 vakje word gezet 001002

structuur tabel B
------------------

Unieke Code

001002 (bij selecteren 001 en 002)
002003 (bij selecteren 002 en 003)

--------------------------------------

Dus als het ware worden er van 2 losse codes 1 nieuwe code gemaakt
Kom ik terug bij mijn aangepaste post:
Obelix en Idefix op 25/04/2012 17:28:07

Waar gaat het fout? Het plaatsen van de checkbox of het verwerken in de database?


Ik denk dan het plaatsen van de checkbox.... Hoe moet ik de checkbox plaatsen dat de inhoud van wat uit de tabel op het scherm geprint word in tabel B gezet word
In 2 stappen:
1: formulier met de gegevens tonen
2: verwerking van formulier

Reageren