Update multiple rows mysql/php

Status
Niet open voor verdere reacties.

rutje1

Gebruiker
Lid geworden
17 feb 2006
Berichten
377
Hallo,

Ik probeer meerdere gegevens te updaten, waarvan 2 die vast staat, uit een sessie en de datumtijd now(). Maar nu wil ik ook een extra gegeven toevoegen en dat is een + of een - of een #

ik heb deze code maar het werkt niet, geen errors:

PHP:
if(isset($_POST['submit'])){
$quality = $_POST['quality'];
for($i=0;$i<$count;$i++){
$sql1="UPDATE rapporten SET kwaliteit = '".$quality[$i]."', gebruiker = '".$_SESSION['gebruikernummer']."', tijd = NOW() WHERE id = '".$id[$i]."'";
$result1=mysql_query($sql1)or die(mysql_error());
}
}

en gegevens van de inputs:

PHP:
echo '<tr><td><input type="hidden" name="id[]" value="'.$rij['id'].'"><td><select name="quality[]"><option value="+">+</option><option value="#" selected>#</option><option value="-">-</option></select></td></tr>';

Het is een beetje uit zn verband gehaald omdat er veel code omstaat wat niet op dit probleem van toepassing is.

Hopelijk kan iemand me helpen.
Voorbeeld waarvan code komt hier

mvg rutje1
 
Laatst bewerkt:
PHP:
for($i = 0; $i < $count; $i ++) {
}

Waar komt die $count vandaan? :)
 
wat doet je mysql na die update? en waar plaats je die # in je query?
 
PHP:
for($i = 0; $i < $count; $i ++) {
}

Waar komt die $count vandaan? :)


Aah, over het hoofd gezien. Maar ik snap die regel helemaal niet echt. Het moet een loop creeeren, maar verder?


wat doet je mysql na die update? en waar plaats je die # in je query?

na update geef ik melding en stuur ik het door met redirect, maar dit heb ik uit code weggelaten hier. Het # is als neutraal teken als bedoeling. Iemand heeft een rapport geschreven en dan geef ik een pluse (goed) # (neutraal) of - (slecht). Dat stop ik in db met $quality.

---

k heb count nu erbij gezet met juiste gegevens.
Maar wat kan er nu dan nog fout zijn?

PHP:
$count = mysql_num_rows($query2);
 
krijg je ook niet deze fout
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

krijg ik namelijk wel maar dan in een andere code
 
PHP:
$count = mysql_num_rows($query2);

De functie mysql_num_rows() heeft een mysql-resultset nodig. Ik neem aan dat in de variabele $query2 de daadwerkelijke query zit.

Probeer dit eens:
PHP:
$query2 = "...";
$result2 = mysql_query($query2) or die(mysql_error());
$count = mysql_num_rows($result2);
 
De functie mysql_num_rows() heeft een mysql-resultset nodig. Ik neem aan dat in de variabele $query2 de daadwerkelijke query zit.

Probeer dit eens:
PHP:
$query2 = "...";
$result2 = mysql_query($query2) or die(mysql_error());
$count = mysql_num_rows($result2);

Dan krijg ik error:

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '...' at line 1


Maar die count is nu goede getal, namelijk het aantal rijen en dat klopt.

--------------

Ik heb deze precies gevolgd om het probleem te ontdekken. Met eigen db gegevens ingevuld krijg ik de gegevens te zien uit de DB, maar ook het aanpassen in mijn voorbeeld (uit tutorial) werkt niet. Weet iemand wat er fout is aan mijn code / "]tutorial?

Alvast bedankt voor de hulp tot nu toe
 
Probleem opgelost!

De server stond niet goed ingesteld. Er werd gebruik gemaakt van $quality[$i] maar dit moest ik opgeschrijven als $_POST['quality'][$i]

Heeft te maken met superglobals.
Ondertussen probleem verholpen en het werkt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan