Avatar billede torstein Novice
22. maj 2003 - 02:34 Der er 13 kommentarer og
1 løsning

Hjælp til array

$spiller = mysql_query("select * from fvbk where hold ='ungdom' order by fornavn asc")  or die(mysql_error());
$number2 = mysql_num_rows($spiller);

while ($row = mysql_fetch_array($spiller)) {
?>
<input type="checkbox" name="spiller_in" value="<?=$row[fornavn]." ".$row[efternavn];?>" style="background-color: transparent; border: none;"> <?=$row[fornavn]." ".$row[efternavn];?><br>
<?}?>

Ovenstående henter en stak navne, hvoraf jeg skal kunne vælge x-antal vha checkboxen og så gemme dem i en ny DB. Hvordan gøres dette smartest??
Avatar billede schaefner Juniormester
22. maj 2003 - 06:41 #1
Hvis der skal indsættes en række i den nye tabel for hver valgt spiler, så burde du kunne gøre således:

<?php
$spiller = mysql_query("select * from fvbk where hold ='ungdom' order by fornavn asc")  or die(mysql_error());
$number2 = mysql_num_rows($spiller);

while ($row = mysql_fetch_array($spiller)) {
    echo "<input type=\"checkbox\" name=\"spiller_in[]\" value=\"$row[fornavn] $row[efternavn]\" style=\"background-color: transparent; border: none\">$row[efternavn]<br>";
}

for($i=0; $i < count($_POST['spiller_in']); $i++) {
    if ($_POST['spiller_in'][$i] != "") {
        $tmp = $_POST['spiller_in'][$i];
        mysql_query("INSERT INTO tabel (spiller) VALES('$tmp')") or die mysql_query());
    }
}
?>

Det er dog utestet.
Avatar billede schaefner Juniormester
22. maj 2003 - 06:43 #2
skal lige være:
mysql_query("INSERT INTO tabel (spiller) VALUES ('$tmp')") or die mysql_query());
Avatar billede sostack Nybegynder
22. maj 2003 - 08:39 #3
mysql_query("INSERT INTO tabel (spiller) VALUES ('$tmp')") or die mysql_error();
måske??

//sostack
Avatar billede schaefner Juniormester
22. maj 2003 - 11:17 #4
Skulle selvfølgelig være:
mysql_query("INSERT INTO tabel (spiller) VALUES ('$tmp')") or die (mysql_query());
Avatar billede tipsen Nybegynder
22. maj 2003 - 11:25 #5
Man kan også bare indsætte alle rækkerne på én gang:

INSERT INTO table (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9)

ovenstående fylder 3 rækker på "table" i felterne a, b og c
Avatar billede tipsen Nybegynder
22. maj 2003 - 11:26 #6
lidt hurtigere/nemmere for db-serveren.
Avatar billede schaefner Juniormester
22. maj 2003 - 12:28 #7
tipsen >> Den kendte jeg ikke. Tak for tippet ;o)
Avatar billede torstein Novice
22. maj 2003 - 12:42 #8
schaefner: Det ser meget lovende ud, og det ser ud til jeg er på dybt vand. jeg har brug for lidt mere hjælp. Flg. script opdaterer ikke noget i DB:

<?
if ($action=="opdater"){
for($i=0; $i < count($_POST['spiller_in']); $i++) {
    if ($_POST['spiller_in'][$i] != "") {
        $tmp = $_POST['spiller_in'][$i];
        mysql_query("INSERT INTO kids_spiller (id,spiller,level) VALUES ('$staevne','$tmp','$level')") or die (mysql_query());
    }
}?>
<div align="center"><h3><?echo "Opdateret";?></h3></div>
<br><br><a href="kids_menu.php">Retur til menuen</a><br>
<?exit;}
if (!$staevne){
$result = mysql_query("select * from kids ORDER BY dato desc") or die(mysql_error()); 
$number = mysql_num_rows($result);
?>
<form method="POST">
<select size="1" name="staevne" onchange="this.form.submit();">
<option selected value></option>
<?    while ($row = mysql_fetch_array($result)) {?>
<option value="<? echo $row[id];?>"><? echo flot_dato($row[dato])." ".$row[spillested];}?></option>
</select><?}?></form>

<?if ($staevne){?>
<form action="<? echo $php_self; ?>" method="post">
<input type="hidden" name="id" value="<? echo $staevne;?>">
<?
$result = mysql_query("select * from kids where id ='$staevne'") or die(mysql_error()); 
$row = mysql_fetch_array($result);
?>
Sæt kryds ved de spillere som er med til stævnet den: <b><?=flot_dato($row[dato]);?></b>.
<table border=0 width=100%>
<tr>
<td width=20%>Level: </td>
<td width=80%><select size="1" name="level">
    <option selected value>vælg level</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
      </select></td></tr></table>
<table border=0 width=100%><tr><td width="20%" valign="top">Spillere: </td>
<td width=80%><?
$spiller = mysql_query("select * from fvbk where hold ='ungdom' order by fornavn asc")  or die(mysql_error());
$number2 = mysql_num_rows($spiller);
while ($row = mysql_fetch_array($spiller)) {
    echo "<input type=\"checkbox\" name=\"spiller_in[]\" value=\"$row[fornavn] $row[efternavn]\" style=\"background-color: transparent; border: none\">$row[fornavn] $row[efternavn]<br>";
}
?>
</td></tr></table><br>
<div align="center"><input type="submit" name="action" size=10 value="opdater"></div></form>

Tipsen: Igen, du er langt længere fremme end jeg. Det vil kræve et mere uddybende eksempel for at jeg fatter bare lidt af det du skriver. :)
Avatar billede tipsen Nybegynder
22. maj 2003 - 13:22 #9
schaefner er sikkert mand for at oversætte :-)
Avatar billede schaefner Juniormester
22. maj 2003 - 13:34 #10
Desværre ikke nu, da jeg forlader computeren de næste par timer.
Avatar billede torstein Novice
22. maj 2003 - 13:40 #11
Tid er point, og jeg venter gerne :o)
Avatar billede torstein Novice
23. maj 2003 - 00:04 #12
Schaefner, det virker, tak for hjælpen, smid et svar.
Avatar billede torstein Novice
30. maj 2003 - 16:17 #13
Schaefner, 60 p for et svar eller der lukkes....
Avatar billede schaefner Juniormester
30. maj 2003 - 18:26 #14
javel.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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