19. august 2007 - 14:37
Der er
18 kommentarer og 1 løsning
afkryds checkbox hvis der er noget i databasen
Hvordan kan jeg sætte flueben i en checkbox hvis der er noget i databasen? For at finde ud af hvilke poster der skal puttes i databasen har jeg et while loop til at oprette x-antal checkboxe: while($row = mysql_fetch_array($query1)) { echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo '" value="' . $row['surfacenavn'] . ":" . $row['farvekode'] . '">'; echo $row['surfacenavn']; echo '</td></tr>'; } Hvad er koden for at sætte flueben i checkbox? måske jeg så selv kan klare den?
Annonceindlæg fra Barco
19. august 2007 - 15:05
#1
<input type='checkbox' name='blabla' checked='checked'>
19. august 2007 - 15:41
#2
hmm det her er nok helt galt men kan man gøre noget lignende det her? while($row = mysql_fetch_array($query1)) { $query = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr='" . $_GET["varenr"] . "'")or die(mysql_error()); $row7 = mysql_fetch_array($query); echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo '" value="' . $row['surfacenavn'] . ":" . $row['farvekode'] . '" ' . if($farvekode=='"'$row['farvekode']'"'){"checked='checked'";} . '>'; echo $row['surfacenavn']; echo '</td></tr>'; }
19. august 2007 - 15:44
#3
uhm glemte fejl meddelelsen: Parse error: parse error, unexpected T_IF in /var/www/triplan/triplan.net/www/e_shop/admin/edit_product.php on line 67 linie 67 er . if($farvekode=='"'$..............
19. august 2007 - 16:24
#4
Jeg har splittet det lidt mere op: Og er dit array "row7" korrekt defineret. I koden hentes der nemlig ikke noget fra "row7", men det kan selvfølgelig være andet sted, det foregår. echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo ' value="' . $row['surfacenavn'] . '":"' . $row['farvekode'] . '" '; if($farvekode==$row['farvekode']) { echo 'checked="checked"'; } echo '>'; echo $row['surfacenavn']; echo '</td></tr>'; }
19. august 2007 - 17:15
#5
jeg endte med at gøre sådan her,..: while($row = mysql_fetch_array($query4)) { $query = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr='" . $_GET["varenr"] . "'")or die(mysql_error()); echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo ' value="' . $row['surfacenavn'] . '":"' . $row['farvekode'] . '" '; while($row7 = mysql_fetch_array($query)) { if($row7['farvekode']==$row['farvekode']) { echo 'checked="checked"'; } } echo '>'; echo $row['surfacenavn']; echo '</td></tr>'; }
19. august 2007 - 17:15
#6
bare smid et svar =)
19. august 2007 - 17:18
#7
Godt du fik de til at virke.
19. august 2007 - 17:42
#8
uhm lige en extra lille ting,.. =) når jeg skal opdatere min database med det indhold jeg nu har, troede jeg at jeg bare kunne gøre således: $sql = "update shop_content (varegruppeID, varenr, beskrivelse, dimension, enhed, enhedstype) values ('$varegruppeID', '$varenr', '$beskrivelse', '$dimension', '$enhed', '$enhedstype')"; $result = mysql_query($sql) or die(mysql_error()); Men den jeg får fejl i sql syntaxen... så det er nok ikke rigtigt =)
19. august 2007 - 17:59
#9
Der findes flere måder, fx sådan her: mysql_query("UPDATE shop_content SET varegruppeID='$varegruppeID',varenr='$varenr' WHERE feltnavn = '$ret'")or die (mysql_error()); Bemærk, at jeg kun har angivet 2 feltnavne, og at jeg også har sat "WHERE", som bruges til identificere den post, du vil opdatere.
19. august 2007 - 19:10
#10
Disse data kommer videre til UPDATE scriptet men intet sendes til db´en: Array ( [varenr] => 66667 [beskrivelse] => tester 67 [dimension] => 6x67 [enhed] => 6667 [enhedstype] => cm [ids] => Array ( [0] => Galvaniseret [1] => RAL 7016 [2] => RAL 9010 ) [submit] => Opdatér vare ) UPDATE scriptet ser således ud nu: $sql = "UPDATE shop_content SET varegruppeID='$varegruppeID', varenr='$varenr', beskrivelse='$beskrivelse', dimension='$dimension', enhed='$enhed', enhedstype='$enhedstype' WHERE varenr = '" . $varenr . "'"; $result = mysql_query($sql) or die(mysql_error()); Jeg ved godt at [ids] => Array ikke er med i sql´en de skal ind et andet sted men de andre data burde jo blive opdateret
19. august 2007 - 19:16
#11
ahh hehe flot det var fordi jeg skulle smide $_GET["varenr"] ind istedet for $varenr I rest my case,.. takker for hjælpen =)
19. august 2007 - 19:28
#12
Velbekomme og tak for point :-)
19. august 2007 - 20:04
#13
argh den var ikke helt på plads alligevel,.. mon du kan finde fejlen? den "mister" $farvekode undervejs =( Mit checkbox script ser således ud: while($row = mysql_fetch_array($query5)) { $query = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr='" . $_GET["varenr"] . "'")or die(mysql_error()); echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo ' value="' . $row['surfacenavn'] . '":"' . $row['farvekode'] . '" '; while($row7 = mysql_fetch_array($query)) { if($row7['surfacenavn']==$row['surfacenavn']) { echo 'checked="checked"'; } } echo '>'; echo $row['surfacenavn']; echo '</td></tr>'; } og mine edit/tilføj sql sætninger ser således ud: if($action=="opdater") { $varegruppeID = $_GET["varegruppeID"]; $sql = "UPDATE shop_content SET varenr='$varenr', beskrivelse='$beskrivelse', dimension='$dimension', enhed='$enhed', enhedstype='$enhedstype' WHERE varenr = '" . $_GET["varenr"] . "'"; $result = mysql_query($sql) or die(mysql_error()); $sql2 = "DELETE from shop_surface_dd WHERE varenr = '" . $_GET["varenr"] . "'"; $result2 = mysql_query($sql2) or die(mysql_error()); $ids = ( isset( $_POST['ids'] ) && is_array( $_POST['ids'] ) ? $_POST['ids'] : array() ); foreach( $ids as $id ) { list($surfacenavn, $farvekode) = explode(":", $id); $sql_dd = "insert into shop_surface_dd (varenr, farvekode, surfacenavn) values ('$varenr', '$farvekode', '$surfacenavn')"; $result_dd = mysql_query($sql_dd) or die(mysql_error()); }
19. august 2007 - 20:05
#14
den sletter fint det gamle indhold fra shop_surface_dd men det nye indhold mangler farvekode dvs. feltet "farvekode" er nu tomt =(
19. august 2007 - 20:14
#15
Jeg forstår ikke helt sammenhængen i koden, og det gør nok heller ikke noget. Vi kan vel være enige om, at variablen $farvekode er tom, for din "insert into" ser rigtig ud. Hvor bliver variabelen $farvekode sat??? Har det noget med udtrækket tidligere at gøre, for så skal variablen i "insert into" jo hedde $row['farvekode'] og ikke $farvekode.
19. august 2007 - 21:14
#16
uhm før vi lavede om på nedenstående kode virkede det fint: kode 1, virker fint: while($row = mysql_fetch_array($query5)) { echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo '" value="' . $row['surfacenavn'] . ":" . $row['farvekode'] . '">'; echo $row['surfacenavn']; echo '</td></tr>'; } kode 2, virker ikke,.. den mister somewhere farvekode: while($row = mysql_fetch_array($query4)) { $query = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr='" . $_GET["varenr"] . "'")or die(mysql_error()); echo '<tr><td colspan="3"><input type="checkbox" name="ids[]"'; echo ' value="' . $row['surfacenavn'] . '":"' . $row['farvekode'] . '" '; while($row7 = mysql_fetch_array($query)) { if($row7['surfacenavn']==$row['surfacenavn']) { echo 'checked="checked"'; } } echo '>'; echo $row['surfacenavn']; echo '</td></tr>'; } begge scripts bruger samme update, delete og insert sql...
19. august 2007 - 21:35
#17
Den første "while" smides "query5-array" i variablen "$row". Næste "while" smides "query4-array" samme variabel, nemlig "$row". Er det korrekt?
19. august 2007 - 23:07
#18
det er bare eksempler... kode 1 virker men efter jeg ændrede koden til det i kode 2 mangler :farvekode det skulle jo gerne stadig se sådan her ud surfacenavn:farvekode Jeg opretter lige et nyt spørgsmål, du kan bare byde ind på det også =) så får du flere points hvis vi finder en løsning =)
20. august 2007 - 17:24
#19
jeg ved ikke hvad fejlen var men efter jeg byggede hele scriptet op igen forfra virkede det =) så nu er det helt over and out =)
Vi tilbyder markedets bedste kurser inden for webudvikling