J'ai un formulaire HTML qui a 2 * 12 champs d'entrée avec nom = "Liens []" et nom = "IDS []" ... Je veux mettre à jour la colonne 'link' avec ces 12 liens en utilisant ces 12 identifiants Je sais que nous avons besoin d'une boucle pour cela. Mais ne sais pas comment faire la requête SQL.
for($i=0 ; $i<count($record['id']); $i++){
$id=mysqli_real_escape_string($conn, $record['id'][$i]);
$season=mysqli_real_escape_string($conn, $record['season'][$i]);
$episode=mysqli_real_escape_string($conn, $record['episode'][$i]);
$rel_id=mysqli_real_escape_string($conn, $record['rel_id'][$i]);
$link=mysqli_real_escape_string($conn, $record['link'][$i]);
//sQl Query
$sql = "UPDATE series SET season='$season' and episode='$episode' and rel_id='$rel_id' and link='$link' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {}
else { echo "Error: " . $sql . "<br>" . $conn->error; };
3 Réponses :
$ids=mysqli_real_escape_string($conn, $_POST['ids']);
foreach($ids as $key => $id){
$sql="update tablename set fieldname=value where link=$_POST[links][$key] and id=$id";
}
This might work. If not give me more details.
En fait, non ... je veux définir feildname = $ link (s) où id = $ ID (s) ... $ les liens et $ ID sont plus de 1 afin que nous ayons besoin de boucle pour cela ...
Essayez le code ci-dessous.
<form name="rec" id="rec" method="post">
<input type="text" name="reord[id][]">
<input type="text" name="reord[season][]">
<input type="text" name="reord[episode][]">
<input type="text" name="reord[rel_id][]">
<input type="text" name="reord[link][]">
<br/>
<input type="text" name="reord[id][]">
<input type="text" name="reord[season][]">
<input type="text" name="reord[episode][]">
<input type="text" name="reord[rel_id][]">
<input type="text" name="reord[link][]">
<br/>
<input type="text" name="reord[id][]">
<input type="text" name="reord[season][]">
<input type="text" name="reord[episode][]">
<input type="text" name="reord[rel_id][]">
<input type="text" name="reord[link][]">
</br>
<input type="submit" name="submit" value="submit">
</form>
<?php
if(isset($_POST['submit'])){
$record = $_POST['reord'];
$id = $season = $episode = $rel_id = $link = '';
for($i=0 ; $i<count($record['id']); $i++){
$id= mysqli_real_escape_string($conn, $record['id'][$i]);
$season=mysqli_real_escape_string($conn, $record['season'][$i]);
$episode=mysqli_real_escape_string($conn, $record['episode'][$i]);
$rel_id=mysqli_real_escape_string($conn, $record['rel_id'][$i]);
$link= mysqli_real_escape_string($conn, $record['link'][$i]);
echo $sql = "UPDATE series SET season='$season' and episode='$episode' and rel_id='$rel_id' and link='$link' WHERE id=$id";
$conn->query($sql);
}
}
?>
Pourquoi cela ne fonctionne pas avec plus de 2 variables? Comme lorsque j'ajoute plus de variables après $ liens, il définit toutes les valeurs de $ liens vers 1 et n'exécute pas les autres variables ...
Pouvez-vous s'il vous plaît éditer votre code et ajouter le dernier. je verrai
Shivendra Singh ... fait.
J'ai vérifié que cela fonctionne pour toute variable. Je mettez à jour le code. Jetez un coup d'oeil s'il vous plait.
Est-il possible d'ajouter votre code de formulaire, vérifiera. parce que cela fonctionne pour toute la variable.
Merci pour vos gars de temps ... mais ça marche maintenant ... c'était une erreur stupide avec la requête SQL que j'ai utilisée et au lieu de "", "des virgules ... ça marche après avoir corrigé la requête SQL ... merci pour votre temps ...
UPDATE `tablename` SET `fieldname` = CASE
WHEN id = 1 AND xyz = 3 THEN `value 1`
WHEN id = 2 AND xyz = 3 THEN `value 2`
WHEN id = 3 AND xyz = 3 THEN `value 3`
END
In the scenario described I would use SET-WHEN-THEN query
S'il vous plaît ignorer la suggestion ci-dessus