Hallo allemaal,

ik zit met het volgende probleem.
In mijn form kan men dmv een checkbox meerdere opties aanvinken, waarna als men op submit drukt de rij in de tabel wordt aangepast waarbij de waarde gelijk is aan het id.

Nu lukt dat...echter..hoeveel ik ook aanvink, hij update altijd degene met het laagste id.

Iemand een idee ?


<?
// de query als men op submit drukt

$result = mysql_query("UPDATE whores SET selling='1',priceperhour='".mysql_real_escape_string($_POST['priceperhour'])."', onthestreet=NOW(), hidename='".mysql_real_escape_string($_POST['proshidename'])."' WHERE id='" .mysql_real_escape_string($_POST['whores']). "' ")
or die(mysql_error());

echo "<font color='#ffffff'><b>This girl is now working the streets for $ ".number_format($_POST['priceperhour']).",- per hour</b></font>";

//de while 
$sql = "SELECT * FROM whores WHERE owner='".mysql_real_escape_string($name)."' AND selling='1' ORDER BY id DESC "; 
$res = mysql_query($sql) or die(mysql_error()); 
while ($row = mysql_fetch_array($res)) { 

echo "<option value=\"".$row['id']."\">".$whore_army[$row['pimping'] - 1]."</option>";	  
}// while loop 
?>
Echo de query eens en controleer of die eruit ziet zoals je verwacht?
ik blijf er op uitkomen dat hij maar 1 rij pakt... misschien dat ik even het coden moet laten, maar om eerlijk te zijn snap ik er nu helemaal niets van :-/
Dennis schreef op 31.12.2009 12:26
ik blijf er op uitkomen dat hij maar 1 rij pakt... misschien dat ik even het coden moet laten, maar om eerlijk te zijn snap ik er nu helemaal niets van :-/
Dat klopt ook wel. In je query heb je immers staan 'WHERE id = ...' en er zullen geen twee records met hetzelfde id zijn.
dat klopt, echter als ik de broncode bekijk heeft elke optie zijn eigen id. Vandaar dat ik niet begrijp dat het dan niet doorgevoerd wordt.

<input name='whores' type='checkbox' value='25'> English girl <br>
<input name='whores' type='checkbox' value='10'> Italian girl <br>
<input name='whores' type='checkbox' value='4'> Spanish girl <br>
Oei, daar zit het probleem. Op deze manier wordt de inhoud van $_POST['whores'] telkens overschreven en zal alleen de laatst checkbox uitgelezen kunnen worden.

Verander de naam van je velden in 'whores[]', dit zal resulteren in de array $_POST['whores'] die nu wel alle data van al je checkboxen zal bevaten. In het achterliggende script kun je met een foreach loop vervolgens deze array uitlezen en elk record in de database updaten.
terug gewist, bovenstaande oplossing is praktischer
ik ga er eens mee aan de slag, kijken of ik er uit kom voor dat er rook uit mijn oren komt :-D
En als er rook uit je oren komt, steek dan je hoofd even in een grote emmer koud water...

Succes in ieder geval!
hahaha

nou ik heb nu het volgende... en naar mijn weten zit ik volledig mis


<?

for($i=0;$i<$count;$i++){
		
		$result = mysql_query("UPDATE whores SET selling='1',priceperhour='".mysql_real_escape_string($_POST['priceperhour'])."', onthestreet=NOW(), hidename='".mysql_real_escape_string($_POST['proshidename'])."' WHERE id='" .mysql_real_escape_string($_POST['whores'][$i]). "' ")
or die(mysql_error());

echo "<font color='#ffffff'><b>This girl is now working the streets for $ ".number_format($_POST['priceperhour']).",- per hour</b></font>";

}
?>


en bij name van de checkbox staat whores[]

hoop dat iemand om mijn gestuntel kan lachen :-/
Allereerst zou ik voor het uitlezen van de array een foreach loop gebruiken:
<?php
foreach($_POST['whores'] as $whore_id) {

}
?>
Daarnaast zie ik nog enkele POST variabelen in je code. Als die voor elke checkbox verschillen, zul je die uiteraard ook in een array moeten zetten.

Reageren