insane1 Skrevet 18. februar 2008 Skrevet 18. februar 2008 Hei! Jeg prøver å få til en masseoppdatering av mysql, hvor jeg kjører en listing, og deretter kunne endre det jeg vil i denne listingen (liste opp informasjonen gjennom forskjellige input-typer), for så å ha kun 1 submit knapp i bunn. Er det noen som har noen idé om hvordan jeg kan få til det her? Jeg har prøvd en mengde forskjellige masseoppdateringer, men det ender alltid med samme resultat; siden vises ikke i det hele tatt. Ingen treff fra database, rett og slett en blank side. Hvis noen har en løsning, tips eller et vink i riktig rettning hadde jeg vært veldig takknemlig -Egil
pulse Skrevet 18. februar 2008 Skrevet 18. februar 2008 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo '<input type="text" name="'.$row['id'].'" value="'.$row['value'].'">'; } Noe sånt?
insane1 Skrevet 18. februar 2008 Forfatter Skrevet 18. februar 2008 Hei! Testet det her nå, men dessverre hjalp det ikke, kanskje det blir litt enklere å forstå hvis jeg lister opp hele innholdet i siden: PS: Linken jeg trykker på for å komme inn på denne siden inneholder informasjon som overføres til $linktitle her. <?php $linktitle = $_GET['link'];?> <html> <head> <title><?php echo $linktitle; ?></title> </head> <body> <?php include("../config/config.php"); include("../config/opendb.php"); $result = mysql_query("SELECT * FROM foobase WHERE foo1 = '$linktitle'") or die(mysql_error()); // Count table rows $count=mysql_num_rows($result); ?> <table align="center" border="0"> <form name="form1" method="post" action=""> <tr><th>Foo2</th><th>Foo3</th><th>Foo4</th><th>Foo5</th><th>Foo6</th><th>Foo7</th></tr> <?php while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "<tr><td>"; echo $row['foo2']; echo "</td><td>"; echo $row['foo3']; echo "</td><td>"; echo $row['foo4']; echo "</td><td>"; echo $row['foo5']; echo "</td><td>" echo '<input type="text" name="'.$row['foo2'].'" value="'.$row['foo6'].'">'; echo "</td><td>"; echo '<input type="text" name="'.$row['foo2'].'" value="'.$row['foo7'].'">'; echo "</td></tr>"; } ?> <tr> <td colspan="4" align="center"><input type="submit" name="Submit" value="Oppdater"></td> </tr> </table> </td> </tr> </form> </table> <?php if($Submit){ for($i=0;$i<$count;$i++){ $sql1="UPDATE foobase WHERE foo1='$linktitle' SET foo7='$foo7[$i]', har='$foo6[$i]'"; $result1=mysql_query($sql1); } } if($result1){ header("location:endre_valg.htm"); } mysql_close(); ?> </body> </html> Det er FULLT mulig jeg har stirret meg blind på den her og gjort en vanvittig tåplig feil... Bare så det er sagt -Egil
-morten Skrevet 18. februar 2008 Skrevet 18. februar 2008 Hvis jeg fårstår deg rett, så vil du liste alle radene i tabellen, med noen inputbokser for hver rad, så du kan endre enkelte kolonner i tabellen? Hvis alle radene har en egen ID i form av et tall, så kan du gjøre sånn: <input type="text" name="KOLONNENAVN[RAD_ID]" value="VERDI"> På grunn av klammeparantesene så lager PHP arrays for deg automagisk, så når du skal lagre det kan du feks gjøre: foreach ($_POST['KOLONNENAVN'] as $id => $value) { mysql_query("UPDATE tabell SET KOLONNENAVN='$value' WHERE ID='$id'"); } (Men selvfølgelig med escaping av inndata, og evt med kun en UPDATE for hver rad, selv om du endrer flere kolonner.) Putt koden under i en egen fil og kjør den, så ser du hvordan det fungerer med flere inputfelt med samme navn, og med og uten klammeparanteser. <?php if (!$_POST) { ?> <form method="post"> <input type="text" name="test1" value="denne verdien blir borte"><br> <input type="text" name="test1" value="denne blir med"><br> <input type="text" name="test2[]" value="I"><br> <input type="text" name="test2[]" value="II"><br> <input type="text" name="test2[]" value="III"><br> <input type="text" name="test3[4]" value="A"><br> <input type="text" name="test3[5]" value="B"><br> <input type="text" name="test3[6]" value="C"><br> <input type="text" name="test4[X]" value="1"><br> <input type="text" name="test4[Y]" value="2"><br> <input type="text" name="test4[Z]" value="3"><br> <input type="submit"> </form> <?php exit; } echo '<pre>'; var_dump($_POST); echo '</pre>'; ?>
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå