8791 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

j'ai un soucis, je voudrais modifier une table SQL directement via mon site mais ça ne marche pas. Si quelqu'un peut m'aider voici mon code :


<b>Modifier les annonces</b>
<br><br>

<?


if ($_POST)
{

$id=$_POST["id"];
$plan=$_POST["plan"];
$url=$_POST["url"];
$description=$_POST["description"];

$query = "UPDATE ads SET ad_url='$url', ad_description='$description', clicksleft='{$_POST['clicksleft']}', premium='{$_POST['premium']}' where ad_id='$id'";
mysql_query($query) or die(mysql_error());

echo "<font color=\"#4cbacb\"><b>Annonce modifiée avec succès.</b></font><br><br>";


}

if (isset($_GET["id"]))
{

$id=$_GET["id"];



$option=$_GET["option"];


if ($option=="edit"){

?>


<?

$tablae = mysql_query("SELECT * FROM ads where ad_id='$id'"); 

while ($registroe = mysql_fetch_array($tablae)) { 

?>

<form method="post" action="admin.php?op=2">

Id: <input type="hidden" name="id" value="<?= $registroe["id"] ?>"><?= $registroe["ad_id"] ?><br>
Clics restant: <input type="text" name="clicksleft" value="<?= $registroe["clicksleft"] ?>"><br>
URL: <input type="text" name="url" value="<?= $registroe["ad_url"] ?>"><br>
Description: <input type="text" name="description" value="<?= $registroe["ad_description"] ?>"><br>
Premium: <input type="text" name="bold" value="0" <? if($registroe["premium"] == 1) { print "checked"; } ?>><br>
<br>

<input type="submit" value="Sauvegarder">

</form>
<br><br>
<?
}
?>

<?

}

if ($option=="delete"){

$queryz = "DELETE FROM ads WHERE ad_id='$id'";
mysql_query($queryz) or die(mysql_error());

echo "<font color=\"#cc0000\"><b>Annonce supprimée.</b></font><br><br>";
}


}
?>

<table>
<tr>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Id
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
URL
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Description
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Clics restant
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Premium?
</b></font></td>
</tr>
<?
$tabla = mysql_query("SELECT * FROM ads WHERE active='1' ORDER BY ad_id ASC"); 
while ($registro = mysql_fetch_array($tabla)) { 

echo "
<tr>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_id"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_url"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_description"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["clicksleft"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["premium"] ."
</font></td>
<td bgcolor=\"#000000\">";
?>
<form method="post" action="admin.php?op=2&id=<?= $registro["ad_id"] ?>&option=edit">
<input type="submit" value="Editer">
</form>
</font></td>
<td bgcolor=\"#000000\">
<form method="post" action="admin.php?op=2&id=<?= $registro["ad_id"] ?>&option=delete">
<input type="submit" value="Supprimer">
</form>
</td>
</tr>

<?

} 


?>
</table>




ma table SQL : ads

CREATE TABLE `ads` (
  `ad_id` int(11) NOT NULL auto_increment,
  `ad_name` varchar(75) NOT NULL,
  `ad_email` varchar(75) NOT NULL,
  `ad_plan` int(2) NOT NULL,
  `ad_url` varchar(75) NOT NULL,
  `ad_description` varchar(255) NOT NULL,
  `cat` int(3) NOT NULL,
  `premium` int(2) NOT NULL,
  `active` int(2) NOT NULL,
  `clicks` int(11) NOT NULL,
  `outside` int(11) NOT NULL,
  `clicksleft` int(11) NOT NULL,
  `ad_balance` int(11) NOT NULL default '0',
  PRIMARY KEY  (`ad_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Modifié par jessjc (05 Jul 2011 - 21:35)
Bonjour ,
quelques questions afin de te répondre :

Tu ne veux pas modifier ta table (alter) mais réaliser des opérations dessus (insert , update , delete) ?
c'est quoi "ça" ?
Hum...
ta table ads tu veux rajouter des champs, modifier la clé primaire , modifier son nom ?
Ou tu veux simplement effectué des opérations dessus ? cad (enregistrer des données les modifier ou les supprimer)

je cite "mais ça ne marche pas" qu'est ce qui ne marche pas (message d'erreur, à quel endroit tu as le problème ) ?
Modifié par Su4p (05 Jul 2011 - 13:09)
aucun message d'erreur, je veux que sur mon site j'édite mes annonces et que
la modification se fasse automatiquement dans ma table sql.
eh bien fait des echo de tes variables avant tes insertions pour voir si elles ont bien le bon contenu

Ps : change la coloration syntaxique de ton premier code , n'importe laquelle ira bien mais ne prends pas la coloration syntaxique par défaut ... trop pénible ce doublage de saut de ligne
Mon echo "Annonce modifiée avec succès" s'affiche mais ça ne fais pas la modification dans ma table
Juste après la ligne :


$query = "UPDATE ads SET ad_url='$url', ad_description='$description', clicksleft='{$_POST['clicksleft']}', premium='{$_POST['premium']}' where ad_id='$id'";


Tu ajoutes :


echo $query;
exit();


Tu fais un test et tu postes la requête ici.
Que veux-tu dire par echo $query c'est ça que je ne comprend pas.....

ok merci jb-gfx

je le fais
Modifié par jessjc (05 Jul 2011 - 14:43)
j'ai ça :


UPDATE ads SET ad_url='http://www.google.fr', ad_description='hgfhgfhgf', clicksleft='4000', premium='' where ad_id=''
oui car c'est suivant le numéro de l'annonce que je modifie, je ne sais pas si je suis claire...
Pages :