Bonsoir,
J'ai une page qui me permet d'apporter des modifications au titre d'une musique, je travail depuis 1 an sur un site qui liste toutes les musiques que j'aime. Je suis face a un mystère je viens de tchèqué tout les noms et tout est au ok, lorsque je fait une modification celle ci ne sont pas prise en compte. Je suis passé a coté d'un truc c'est certain seulement je ne le voie pas.
<?php
require('php/connect.php');
if(isset($_POST) && !empty($_POST)){
try {
$artistes = $_POST'artistes'];
$titres = $_POST'titres'];
$url_img = $_POST'url_img'];
$url = $_POST'url'];
$auteurs = $_POST'auteurs'];
$type = $_POST'type'];
$id = $_POST'id'];
$count = $bdd->exec('UPDATE videos SET artistes="'.$artistes.'", titres="'.$titres.'", url_img="'.$url_img.'", url="'.$url.'", auteurs="'.$auteurs.'", type="'.$type.'" WHERE id="'.$id.';');
echo '<p>'.$count.' ligne(s) modiffier(s)</p>';
}
catch(PDOException $e){
/*
* Si on lève une exception, affichage de l'erreur en question :
*/
echo '<p>Erreur lors de l\'insertion : '.$e->getMessage().'</p>';
}
}
$reponse = $bdd->query("SELECT * FROM videos WHERE id='".$_GET't']."' ");
while ($donnees = $reponse->fetch()){
echo '<p><a href="../?action=artiste&alpha='.$_GET'alpha'].'&a='.$donnees'artistes'].'" >Revenir à la fiche de l\'artiste</a> - <a href="../?alpha='.$_GET'alpha'].'" >Revenir à la liste des titres</a></p>';
?>
<h1>Modifier <?php echo $donnees'artistes']; ?></h1>
<form method="POST" action="?action=edittitre&alpha=<?php echo $_GET'alpha']; ?>&t=<?php echo $_GET't']; ?>" >
<p>
<label for="name" >Nom du chanteur</label>
<input id="name" type="text" name="artistes" value="<?php echo $donnees'artistes'] ; ?>" />
</p><p>
<label for="titre" >titre</label>
<input id="titre" type="text" name="titres" value="<?php echo $donnees'titres'] ; ?>" />
</p><p>
<label for="img" >URl de l'image</label>
<input id="img" type="text" name="url_img" value="<?php echo $donnees'url_img'] ; ?>" />
</p><p>
<label for="url" >URl de la vidéo</label>
<input id="url" type="text" name="url" value="<?php echo $donnees'url'] ; ?>" />
</p><p>
<label for="type">Type Lecteur</label>
<select name="type" id="name">
<?php
$type =$donnees'type'];
$lecteur = array(
'youtube' => 'YouTube',
'daylimotion' => 'Daylimotion',
'wattv' => 'Wat.tv',
'autre' => 'Autre'
);
foreach($lecteur as $url=>$name){
if(in_array($type, $lecteur) && $type == $url){
echo '<option value="'.$url.'" selected>'.$name.'</option>';
}else{
echo '<option value="'.$url.'">'.$name.'</option>';
}
}
?>
</select><br>
</p><p>
</p><p>
<label for="autor" >Auteur de la vidéo</label>
<input id="autor" type="text" name="auteurs" value="<?php echo $donnees'auteurs'] ; ?>" />
</p><p>
<input type="hidden" name="id" value="<?php echo $donnees'id'] ; ?>" />
<input type="submit" value="Modifier" class="btn" />
</p>
</form>
<?php
}
$reponse->closeCursor();
Le problème ne pas peut venir de ma page "connect.php" celle ci est utilisé sur l'ensemble du site et fonctionne parfaitement sur l'ensemble du site sans posé de soucis. Le noms de la table est "videos" elle organisé ainsi: "id, titres, artistes, auteurs, url_img, url, type"
Par avance je vous remercie de votre aide ou tout conseil ou suggestion qui me permettrait d'avancer.
Essais de mettre quelque chose comme:
selected="selected"
plutot que selected seul.
;)
@duffJohn merci beaucoup sa marche il fallait juste aussi retirer in_array.
Bonjour,
si tu fais ça
try {
echo 'dans le try';
$artistes = $_POST'artistes'];
Est-ce que ça s'affiche ?
Tu sauras si tu rentres dans la boucle.
Perso, j'avais jamais vu un système de try catch pour l'update de données, mais si ça fonctionne, je vois pas là.
Je viens de voir, ton update, il y a un $id, mais il n'existe pas je pense ?
Si tu remplace where id = $id par $_GET't']
Bonjour, @Graf4Design je viens de vider le cache et cela ne change rien. @exothermique J'ai fait un print_r juste avant d'envoyer dans la bdd et il m'affiche: Array ( [artistes] => Superbus [titres] => lola [url_img] => superbus/lola.jpg [url] => url [type] => autre [auteurs] => Universal [id] => 49 ) Ce qui laisse pensé que toute les données sont bien reçu mais ne sont pas enregistrer dans la bdd au moins au c'est ou se situe le problème même si on ne c'est pas encore se qui le cause et pourquoi ^^
Salut vavoir,
Essais ça :
$count = $bdd->exec('UPDATE videos SET artistes="'.$artistes.'", titres="'.$titres.'", url_img="'.$url_img.'", url="'.$url.'", auteurs="'.$auteurs.'", type="'.$type.'" WHERE id="'.$id.'"');
Tu avais oublié un " pour fermer l'id.
Dis nous si c'est résolu
@duffJohn merci effectivement j'avais oublié un " du coup je peux faire mais modif sauf que je rencontre un problème avec mon select c'est qu'il ne m'affiche pas la valeur choisi il reste tourjours sur la premiere valeur
C'est à dire?
Quand tu fais ton submit? La valeur envoyé pour le select est toujours la même?
En faite le select reste sur la première valeur a savoir youtube du coup si j'appuie sur le submit il me moddifie la valeur pour mettre youtube. j'ai bien fait une condition pour qui mette "selected" sur la valeur qui est enregistre dans la bdd mais cela ne fonctionne pas.