24. april 2007 - 22:11
Der er
22 kommentarer og 1 løsning
Hjælp ønskes til at finde fejl i update flere række ad gangen
Jeg har fundet dette script som virker fint på kildesiden, men ikke hos mig. <?php $host=""; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name=""; // Database name $tbl_name=""; // Table name mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name ORDER BY id desc"; $result=mysql_query($sql); $count=mysql_num_rows($result); ?> <form name="form1" method="post" action=""> <?php while($rows=mysql_fetch_array($result)){ ?> <? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td> <input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"> <input name="path[]" type="text" id="path" value="<? echo $rows['path']; ?>"> <input name="size[]" type="text" id="size" value="<? echo $rows['size']; ?>"> <?php } ?> <input type="submit" name="Submit" value="Opdatér"> </form> <?php if($Submit){ for($i=0;$i<$count;$i++){ $sql1="UPDATE $tbl_name SET name='$name[$i]', path='$path[$i]', size='$size[$i]' WHERE id='$id[$i]'"; $result1=mysql_query($sql1); } } if($result1){ header("location:admin.php?side=update_multiple"); } mysql_close(); ?> Er der nogen, der kan se en fejl i ovenstående? Jeg har skrællet lidt overflødig html af og fjernet koderne i toppen.
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
24. april 2007 - 23:28
#1
Hvaad får du af fejl ???
24. april 2007 - 23:44
#2
Ingen! Den opdaterer til gengæld heller ikke.
25. april 2007 - 09:25
#3
to ting: Din header(() vil aldrig komme til at virke, da du ikke kan kalde header efter du har sendt noget til browseren. Prøv efter hver mysql_query() at sætte ord die(mysql_error()) så der bliver til: mysql_query(...) or die(mysql_error());
25. april 2007 - 09:26
#4
mysql_connect("$host", "$username", "$password") or die("cannot connect"); mysql_select_db("$db_name") or die("cannot select DB"); manglede lige et par mellemrum.
25. april 2007 - 09:29
#5
<? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td> Hvad skulle denne linie gøre ??
25. april 2007 - 09:36
#6
Så vil jeg foreslå at du istedet for $Submit bruger $_POST['Submit'] og $name[] til $_POST['name[]'], $path[] til $_POST['path[]'], $size[] til $_POST['size[]'] og $id[] til $_POST['id[]']
25. april 2007 - 11:36
#7
Det er da oplagt. Tak for klarsynet. Jeg retter nu, tester senere og vender tilbage med et svar.
25. april 2007 - 18:55
#8
Ny fejl: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\..\update_multiple.php on line 64 Line 64: $sql="UPDATE $tbl_name SET header=$_POST['header[]'], description=$_POST['description[]'] WHERE id='$_POST['id[]']";
25. april 2007 - 19:23
#9
Det er da klart, du skal jo ligsom angive hvilket array element du vil have fat i. Jeg skal bare en generel $_POST['header[]']. Noget kunne være ala: if($_POST['Submit']){ for($i=0;$i<$count;$i++){ $name = $_POST['name[$i]']; $path = $_POST['path[$i]']; $size = $_POST['size[$i]']; $id = $_POST['id[$i]']; $sql1="UPDATE $tbl_name SET name='$name', path='$path', size='$size' WHERE id='$id'"; $result1=mysql_query($sql1); } }
25. april 2007 - 23:57
#10
Den opdatere endnu ikke...
26. april 2007 - 00:01
#11
prøv at outputte din SQL, og se hvad den rent faktisk forsøger at køre.
26. april 2007 - 00:03
#12
outputte din SQL = se, hvad den skriver af kode?
26. april 2007 - 00:23
#13
31<input name="name[]" type="text" id="name" value="drag80.gif"> <input name="path[]" type="text" id="path" value="drag80_20070423-231058.gif"> <input name="size[]" type="text" id="size" value="10637">
26. april 2007 - 01:52
#14
$sql1="UPDATE $tbl_name SET name='$name[$i]', path='$path[$i]', size='$size[$i]' WHERE id='$id[$i]'"; die($sql1); ville vise hvad det rigtig SQL output er, og på det kan du så checke om der er fejl.
26. april 2007 - 01:52
#15
derudover bruger du register globals, hvilket er *meget* dumt.
www.php.net/register_globals læs, og lær.. og fjern dem!
26. april 2007 - 02:52
#16
Betyder: $variable = isset($_GET["variable"]) ? $_GET["variable"] : ""; $variable = det den er sat til ELLERS ingenting? Hvordan kan jeg omskrive min side længere uden? Jeg troede, at det var nok at følge dkfires råd.
27. april 2007 - 07:19
#18
Tak for råd; jeg læser...
Jamen, så siger jeg tak for opsangen. Smider I et svar?
Nej, jeg kan ikke overskue at kombinere så megen ny viden sammen, så nu er jeg startet på at læse om sikkerhed og variabler. Min update-funktion spiller overhovedet ikke, desværre...
06. december 2007 - 08:51
#22
Hej med jer, smider I lige et velfortjent svar?
Computerworld tilbyder specialiserede kurser i database-management