Forum Clubic

Importer des information de Mysql vers PHP

Bonjour,
pour mon projet de bac je doit faire une page qui récupère les annonces de l’utilisateur et les afficher dans une liste déroulante. A fin de pour en sélectionner une puis la supprimer.
J’ai déjà fait un script mais il me marque qu’il y a une erreur à la “method post” mais je ne trouve pas c’est quoi.

Suppression d'une annonce <?php include('connexion.php'); echo''; echo '

Choisissez une annonce à supprimer

'; echo''; $sql = "SELECT Description FROM annonce where Type_anc='location'"; $resultat =mysql_query($sql); while($ligne=mysql_fetch_array($resultat)) { echo ''.$ligne["Description"].''; } ?>

Pouvez vous maindiquer aussi comment utiliser la balise HEADer(location SVP !!

'lut !

  1. Pour que la method POST fonctionne, il faut que ton formulaire soit séparé de ton php :

<?php
// ton traitement du formulaire
?>

<html>
<body
<form method="POST">
<!-- ton formulaire : zone de texte, texte, ... -->
</form>
</body>
</html>

  1. l’utilisation du header est toute simple :

header("Location : ta_page.php/.html/...");

tu peux aussi passer des paramètres avec le header


header("Location : ta_page.php?param1=valeur1&param2=valeur2...");

et tu peux même aussi rediriger l’utilisateur après un certain temps


header("Refresh : 3, ta_page.php");

Dans ce cas, le serveur va attendre 3 secondes avant de charger la page que tu as précisé. De même que le header("Location : ") tu peux passer des paramètres de la même manière :

header("Refresh : 3, ta_page.php?param1=valeur1&param2=valeur2...");

Voili voilu voila !

Merci j’ai maintenant réussi a faire marcher la premiere page mais le souci c’est que quand je ve supprimer une annonce le script ne supprime pas mais il reconnait la valeur selectionner et me marque “erreur de suppression” ce qui correspond à mon message d’erreur “echo”.

<?php include('connexion.php'); $n=$_POST["an"]; echo $n; $req="delete * from annonce where Type-anc='".$n."'"; $res=mysql_query($req); if($req) { echo "Votre annonce de location a bien été supprimer !"; } else { echo "La requête de suppression a échoué"; } ?>
	<br /><br />
	<a href="supvent.html">Supprimer une autre annonce de vente</a>			
	<br /><br />
	<a href="menu.html">Retour au menu</a>

</h

Tu as fais une erreur avec ton DELETE

Syntaxe exact :


DELETE FROM ta_table WHERE tes_conditions_si_tu_en_as

Il ne faut pas mettre de ‘’. Le '’ ne sert qu’au SELECT.

Un excellent site où tu trouveras certainement beaucoup de réponses : http://sql.1keydata.com/fr/

merci mais cela ne change rien ma requête marche quand je la tape dans Mysql. Ma prof a regarder elle ne trouve pas non plus

au lieu de mettre


$res=mysql_query($req);

met


$res=mysql_query($req) or die (mysql_error());

La cause de l’erreur devrait s’afficher.

$req="delete * from annonce
where Type-anc='".$n."'";

Je pense que mySQL lit “where (((Type) - (anc)) = (‘xxx’))”

J’ai mis les parenthèses pour faire comprendre qu’il lit un “-” ce qui n’est pas valide syntaxiquement, et si tu as réellement ça comme nom de colonne, et que tu veux que ça le devienne deux solutions :


// si mode ANSI activé
$req= sprintf('delete from annonce where "Type-anc" = \'%s\'', mysql_real_escape_string($s));
// sinon
$req= sprintf('delete from annonce where `Type-anc` = \'%s\'', mysql_real_escape_string($s));

Note que dans ce cas, tu as une chance sur deux que mySQL soit sensible à la casse au niveau du nom de colonne (ie: si tu as définis Type_Anc, taper type_anc marcherait, mais type_anc risque de te faire une erreur nom de colonne inexistant).

J’utilise les singlequotes car je trouve ça mieux, libre à toi d’adapter.
J’utilise sprintf car c’est chiant de concaténer en PHP (et même dans d’autres langages)
J’utilise mysql_real_escape_string pour éviter une injection SQL.

Pour le header, normalement de mémoire, il faut fournir un chemin complet (ie: /xxx/toto.php?x=…) selon la RFC.