20. oktober 2009 - 21:23
Der er
17 kommentarer
Lav et array ud fra checkboxe og indsæt derefter til databasen
Hejsa. Er igang med et lille system, hvor man skal kunne hakke nogle checkboxe af. Det skal bruges til et fodbold system således, at hvis man krydser af i at hjemmeholdet vinder og i en anden kamp at den bliver uafgjort, hvordan henter man det så ind i et array, så man kan få lagt det ind i en database. Min form ser således ud: <?php include("includes/connect.php"); $hent_car = mysql_query("SELECT * FROM matches ORDER BY id DESC"); $count_car = mysql_num_rows($hent_car); if ($count_car == 0) { echo "Tom";}else{ while($row = mysql_fetch_assoc($hent_car)) { echo "<tr>"; echo "<td>".$row['home']."</td>"; echo "<td>".$row['away']."</td>"; echo "<td></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" value=\"1\" class=\"checkbox\" /><small>".$row['1']."</small></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" value=\"x\" /><small>".$row['x']."</small></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" value=\"2\" /><small>".$row['2']."</small></td>"; echo "</tr>"; } } ?>
Annonceindlæg fra Computerworld it-jobbank
21. oktober 2009 - 14:09
#1
Opper den lige engang
21. oktober 2009 - 17:42
#2
skal du have hver kamps odds ind i hver sin række i databasen?
21. oktober 2009 - 17:44
#3
Jeps, så dem man har klikket af kommer ind i et array og ind i databasen
21. oktober 2009 - 17:52
#4
du har dem jo i arrayet $_POST['match_odds'] når du gør som du har skrevet... og så kan du løbe alle sammen igennem med: $odds = $_POST['match_odds']; foreach($odds as $odds_line){ ... }
21. oktober 2009 - 18:11
#5
Hvordan vil jeg så kunne indsætte hvor den finder id og sætter det ind til den række hvor den hører til?
21. oktober 2009 - 19:24
#6
ja, der skal der nok laves lidt om på det, men når man oddser kan man så ikke kun vælge ÉN mulighed, enten 1, X ELLER 2?
21. oktober 2009 - 20:18
#7
Ja, man skal enten sætte flueben i 1, X(uafgjort) eller 2 Hvordan kan man så gøre, så man kun kan markere en checkbox for hver kamp + at den indsætter det man har valgt i databasen med kampens id? Har en tabel som ser således ud: CREATE TABLE `matches` ( `id` int(4) NOT NULL auto_increment, `home` varchar(255) NOT NULL, `away` varchar(255) NOT NULL, `time` varchar(255) NOT NULL, `1` varchar(255) NOT NULL, `x` varchar(255) NOT NULL, `2` varchar(255) NOT NULL, `result` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; Så den skal ha fat i kampens id og føre det med over i en ny tabel, hvordan kan det gøres på den mest optimale måde? :s
21. oktober 2009 - 20:42
#8
noget i denne stil måske: <?php include("includes/connect.php"); $hent_car = mysql_query("SELECT * FROM matches ORDER BY id DESC"); $count_car = mysql_num_rows($hent_car); if ($count_car == 0) { echo "Tom";}else{ while($row = mysql_fetch_assoc($hent_car)) { echo "<tr>"; echo "<td>".$row['home']."</td>"; echo "<td>".$row['away']."</td>"; echo "<td></td>"; echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"1\" class=\"checkbox\" /><small>".$row['1']."</small></td>"; echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"x\" /><small>".$row['x']."</small></td>"; echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"2\" /><small>".$row['2']."</small></td>"; echo "</tr>"; } } ?> ... <?php while($match = current($_POST['match_odds']){ echo "ID: ".key($_POST['match_odds']).", VÆRDI: ".$match."<br>"; } > utestet...
21. oktober 2009 - 22:10
#9
Hver gang jeg vælger en kamp og trykker send, så loader den i monster lang tid og lukker derefter firefox ned. Min kode ser således ud: <?php if($_POST['submit']){ while($match = current($_POST['match_odds'])){ echo "ID: ".key($_POST['match_odds']).", VÆRDI: ".$match."<br>"; } } include("includes/connect.php"); $hent_car = mysql_query("SELECT * FROM matches ORDER BY id DESC"); $count_car = mysql_num_rows($hent_car); if ($count_car == 0) { echo "Tom"; }else{ while($row = mysql_fetch_assoc($hent_car)) { echo "<tr>"; echo "<td>".$row['home']."</td>"; echo "<td>".$row['away']."</td>"; echo "<td></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" value=\"1\" class=\"checkbox\" /><small>".$row['1']."</small></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" id=\"x\" value=\"x\" /><small>".$row['x']."</small></td>"; echo "<td><input type=\"checkbox\" name=\"match_odds[]\" id=\"2\" value=\"2\" /><small>".$row['2']."</small></td>"; echo "</tr>"; } } ?> Kan du ikke også lige forklare hvad current($_POST['match_odds']) gør? (Jeg har det liggende på localhost, så det kan ikke ha noget med forbindelsen at gøre)
22. oktober 2009 - 18:47
#10
Nogle som kan hjælpe?
22. oktober 2009 - 20:29
#11
<?php while($match = current($_POST['match_odds']){ echo "ID: ".key($_POST['match_odds']).", VÆRDI: ".$match."<br>"; } ?> skal være i den kode der skal smide det i databasen jo...
22. oktober 2009 - 20:49
#12
Ja, men den kan ikke loade siden færdig hvis jeg indsætter det stykke kode, ved ikke hvorfor? Har du nogle ide om det?
22. oktober 2009 - 21:04
#13
hvordan ser dine filer ud? kan man se siden?
22. oktober 2009 - 21:27
#14
23. oktober 2009 - 21:35
#15
du har heller ikke skrevet det som jeg gjorde: echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"1\" class=\"checkbox\" /><small>".$row['1']."</small></td>"; echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"x\" /><small>".$row['x']."</small></td>"; echo "<td><input type=\"radio\" name=\"match_odds[".$row['id']."]\" value=\"2\" /><small>".$row['2']."</small></td>"; du mangler $row['id'] i name attributen
24. oktober 2009 - 01:07
#16
Problemet ligger i, at den er sindsyg lang tid om at loade når jeg vil kører de valgte kampe og sætte dem ind i den while som du har lavet som eksempel længere oppe :S Ved du hvorfor den gør det?
04. november 2010 - 13:05
#17
fik du løst dit problem?
Vi tilbyder markedets bedste kurser inden for webudvikling