Gå til innhold

Masseoppdateringer gjennom PHP


Anbefalte innlegg

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

Lenke til kommentar
Videoannonse
Annonse

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

Lenke til kommentar

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>';

?>

 

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...