Avatar billede tsearexkonge Nybegynder
12. maj 2003 - 14:05 Der er 7 kommentarer og
1 løsning

Opdatere flere poster i mysql i php

Jeg får overført 3 varer med tilhørende felter(username,antal,pris,varenr,dato)til min php side, de 3 felter skulle jeg gerne have skrevet i en mysql database. Jeg kan med koden neden for opdatere 1 vare, men jeg skulle gerne kunne opdatere alle varene på en gang. Plus der kan komme 10-20 vare mere


if ($resultat != ""){
mysql_query ("UPDATE hardware SET antal='$varer1_antal', dato='$dato',antal='$varer1_antal' WHERE username='$UID' and varenummer=$varer1_varenr"); 
echo "<font color=\"darkgreen\">opdateret"; ?><br><?
} else {
mysql("hardware","INSERT INTO hardware VALUES ('$dato','$UID','$varer1_type','$varer1_varenr','$varer1_antal','$varer1_pris')");
echo "<font color=\"darkgreen\">insat"; ?><br><?
}


Jeg har set at nogen bruger følgende ko til at gøre det:_

$res = mysql_query("select * from holgerlager where id = '$IDH'");
while($row = mysql_fecth_array($res)){
mysql_query("$DBName","UPDATE holgerlager SET stk='$III', vardi='$VARDI' WHERE id='$IDH'");
}

Men hvordan gør jeg det når der kommer flere vare? er der nogen som har koden til det?
Avatar billede Slettet bruger
12. maj 2003 - 15:38 #1
aner det ikke, men vil lige lytte med
Avatar billede kube Nybegynder
12. maj 2003 - 16:26 #2
de varer du overfører, kan du smide ind i et array til at starte med. Derefter kan du vha en for-løkke indsætte hvert enkelt element gennem din query.
Avatar billede kube Nybegynder
12. maj 2003 - 16:34 #3
for($i=0;i<count($stkArray);i++)
{
mysql_query("$DBName","UPDATE holgerlager SET stk='$stkArray[$i]', vardi='$vaerdiArray[$i]' WHERE id='$IDarray[$i]'");
}
Avatar billede kube Nybegynder
12. maj 2003 - 16:35 #4
hov der skal måske lige ændres i (<=) eller deromkring ;-)
Avatar billede tsearexkonge Nybegynder
12. maj 2003 - 19:42 #5
Jeg synes at det ser godt ud men jeg har ikke mulighed for at teste det før i morgen.

Lige et andet spørgsmål:
if ($resultat != ""){ her tester jeg om der er noget i databasen for at finde ud af om jeg skal update eller INSERT, men det virker ikke! hvordan gør du når du skal chekke om der er noget i databasen? den skriver noget med id1# når jeg tester på et tomt felt.

Jeg kan ikke svare dig mere i dag, men jeg vender tilbage i morgen, men tak for hjælpen.
Avatar billede tsearexkonge Nybegynder
13. maj 2003 - 08:44 #6
Glem det sidste, har fundet ud af det.
Avatar billede tsearexkonge Nybegynder
13. maj 2003 - 11:51 #7
@kube
Jeg har gjort som du siger og det virker, du får dine point. Kan det passe at man ikke kan bruge insert med where?

$conn = mysql_connect("$dbname","$username","$password");
mysql_select_db($database,$conn) or die ("Kunne ikke åbne database");

$query = mysql_query("SELECT * FROM hardware WHERE username='$UID'");

if(mysql_num_rows($query) != 0) {
    $row = mysql_fetch_array($query);   
    echo "Der er noget!"; ?><br><?

for ($i=0;$i<count($varer_type);$i++){
mysql_query("UPDATE hardware SET antal=$varer_antal[$i], dato='$dato' WHERE username='$UID' and varenummer=$varer_varenr[$i]");
}

echo "<font color=\"darkgreen\">opdateret"; ?><br><?   
} else {
    echo "Der er ingenting!"; ?><br><?

mysql("hardware","INSERT INTO hardware VALUES ('$dato','$UID','$varer1_type','$varer1_varenr','$varer1_antal','$varer1_pris')");
echo "<font color=\"darkgreen\">insat"; ?><br><?
}

mysql_close($conn);
Avatar billede kube Nybegynder
13. maj 2003 - 17:07 #8
Det kan jeg ikke lige huske! men det lyder meget sandsynligt...istedet skal du nok hellere bruge UPDATE..så kan du bruge WHERE
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