Avatar billede fragze Juniormester
26. oktober 2008 - 19:22 Der er 11 kommentarer og
3 løsninger

Simpelt php/mysql spørgsmål

Hej venner,

Jeg er igang med at lave noget event script, og når jeg melder mig til nogle forskellige events som er listet med nogle checkbokse skal den lave entries i min db alt efter hvor mange checkbokse man har sat hak i.

Men lige nu laver den kun et entry og dropper så resten... hvad gør jeg :) her er koden


<?

$link=mysql_pconnect("localhost","user","password");
mysql_select_db("database",$link);


if(!empty($_POST['navn']))
{


$time=mktime();
    $insertSQL = "insert into event_de (event_id, navn, email) values ('$_POST[eventid]', '$_POST[navn]',  '$_POST[email]')";
    mysql_query($insertSQL);
    $text=NULL;
    unset($_POST);
    echo "<script language=\"javascript\">parent.location=\"http://robber.dk/?page_id=51\"</script>";
}

echo "<form name=\"tagger\" action=\"$PHP_SELF\" method=\"POST\">";

$query=mysql_query("SELECT * FROM event",$link);
if (mysql_num_rows($query) > 0)
{
    $felter=mysql_num_fields($query);
    while ($getinfo=mysql_fetch_array($query))
    {
        echo "<input name=\"eventid\" type=\"checkbox\" value=\"".$getinfo['id']."\" /> ".$getinfo['dato']." - ".$getinfo['navn']."<br>";
    }
}
else echo "bla";

echo "Name: <input type=\"text\" name=\"navn\">";
echo "<br>E-mail: <input type=\"text\" name=\"email\">";

echo "<br><input type=\"submit\" value=\"Submit tag\">";


?>
Avatar billede w13 Novice
26. oktober 2008 - 19:27 #1
Det er fordi du bare skriver:

$_POST[eventid]

Så skriver den kun den første.

Hvordan skulle den kunne regne ud, hvordan du vil have listen af valgte checkboxes opstillet? Man må nok bare lave en løkke, der løber $_POST['eventid'] igennem og genererer listen, som ønsket.
Avatar billede olebole Juniormester
26. oktober 2008 - 19:44 #2
<ole>

- og så skal dine checkbox'e nok array-navngives:
    echo "<input name=\"eventid[]\" type=\"checkbox\" ... ... ";

/mvh
</bole>
Avatar billede fragze Juniormester
26. oktober 2008 - 19:53 #3
Jeg er helt blank på brugen af løkker... men tænker noget alla?

for($i = 0; $i $i++) {
echo "<input name=\"$i\" type=\"checkbox\" value=\"".$getinfo['id']."\" /> ".$getinfo['dato']." - ".$getinfo['navn']."<br>";

}
Avatar billede fragze Juniormester
26. oktober 2008 - 20:09 #4
ahaa...

Nu fik jeg den til at indtaste "Array" i databasen...

kan i evt hjælpe mig færdig :-)

if(!empty($_POST['navn']))
{

$eventid = $_POST["eventid"];

for($x = 0; $x < sizeof($eventid); $x++)
#{
#  if(!empty($eventid["$x"])
#  {
#    echo $eventid["$x"] . "<br>\n";
#  }
#}

$time=mktime();
    $insertSQL = "insert into event_de (event_id, navn, email) values ('$eventid', '$_POST[navn]',  '$_POST[email]')";
    mysql_query($insertSQL);
    $text=NULL;
    unset($_POST);
    echo "<script language=\"javascript\">parent.location=\"http://robber.dk/?page_id=51\"</script>";
}

echo "<form name=\"tagger\" action=\"$PHP_SELF\" method=\"POST\">";

$query=mysql_query("SELECT * FROM event",$link);
if (mysql_num_rows($query) > 0)
{
    $felter=mysql_num_fields($query);
    while ($getinfo=mysql_fetch_array($query))
    {
        echo "<input name=\"eventid[]\" type=\"checkbox\" value=\"".$getinfo['id']."\" /> ".$getinfo['dato']." - ".$getinfo['navn']."<br>";
    }
}
else echo "bla";

echo "Name: <input type=\"text\" name=\"navn\">";
echo "<br>E-mail: <input type=\"text\" name=\"email\">";

echo "<br><input type=\"submit\" value=\"Submit tag\">";


?>
Avatar billede w13 Novice
26. oktober 2008 - 20:18 #5
Vi ved stadig ikke, i hvilket format du vil have listen gemt. =)
Avatar billede w13 Novice
26. oktober 2008 - 20:18 #6
Kommasepareret liste f.eks.?
Avatar billede fragze Juniormester
26. oktober 2008 - 20:26 #7
den skal jo lave en insert i en db med hver linje som den får ud af det, hvilket format... jeg er lidt blank :)
Avatar billede fragze Juniormester
27. oktober 2008 - 10:47 #8
Såå er jeg kommet lidt længere :-) nu sætter den dog ikke mit navn ind anden gang den laver entry, det må være lige til højre benet jeg kan dog ikke se hvordan :)

<?

if(!empty($_POST['navn']))
{

if(is_array($_REQUEST['eventid'])) {//tjek om det er et array, hvis ikke vil foreach sætningen fejle
foreach($_REQUEST['eventid'] as $value) {
echo $value;


$time=mktime();
    $insertSQL = "insert into event_de (event_id, navn, email) values ('" . $value . "', '$_POST[navn]',  '$_POST[email]')";
    mysql_query($insertSQL);
    $text=NULL;
    unset($_POST);
    echo "<script language=\"javascript\">parent.location=\"http://robber.dk/?page_id=51\"</script>";
}
}
}

echo "<form name=\"tagger\" action=\"$PHP_SELF\" method=\"POST\">";

$query=mysql_query("SELECT * FROM event",$link);
if (mysql_num_rows($query) > 0)
{
    $felter=mysql_num_fields($query);
    while ($getinfo=mysql_fetch_array($query))
    {
        echo "<input name=\"eventid[]\" type=\"checkbox\" value=\"".$getinfo['id']."\" /> ".$getinfo['dato']." - ".$getinfo['navn']."<br>";
    }
}
else echo "bla";

echo "Name: <input type=\"text\" name=\"navn\">";
echo "<br>E-mail: <input type=\"text\" name=\"email\">";

echo "<br><input type=\"submit\" value=\"Submit tag\">";


?>
Avatar billede olebole Juniormester
27. oktober 2008 - 11:13 #9
Det er nok ikke fikst at smadre $_POST-array'et i første gennemløb af løkken  ;o)

Slet: unset($_POST);
Avatar billede fragze Juniormester
27. oktober 2008 - 11:49 #10
Flot af mig... :) tak for hjælpen det spiller max.

Hvem vil have lidt point for at hjælpe mig på vej :)
Avatar billede olebole Juniormester
27. oktober 2008 - 12:15 #11
Selvtak. Her er foreløbig ét svar  =)
Avatar billede w13 Novice
27. oktober 2008 - 13:26 #12
Her er et fra mig, hvis du synes, mine inputs har hjulpet. =)
Avatar billede olebole Juniormester
27. oktober 2008 - 14:00 #13
Tak for points  =)
Avatar billede w13 Novice
27. oktober 2008 - 14:13 #14
Takker. =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester