Page 1 sur 1

Faire parler la base de donner

Posté : 30 janv. 2008, 10:20
par angelusflm
Bonjour,

J'ai crée un formulaire qui envoie tous le contenu dans une base de donné. (pas de soucis dans cette partie)

Ensuite j'ai réussi à faire ressortir de cette base tout les champs "nom" et ensuite mettre à coté de chaque champ « nom » un lien qui pointerait sur la fiche complète du nom que l'on veut ainsi que un autre lien pour supprimer la fiche.

voir ci-dessous:


« Listing.php »
<?php

mysql_connect("localhost","root","root") OR die ('impossible de se connecter');

mysql_select_db("bapa") OR die ('Sélection de la base impossible');

 

$reponse = mysql_query("SELECT * FROM formulaire"); 

 

while ($donnees = mysql_fetch_array($reponse) )

{

echo $donnees['nom'];

echo '<a href="fiche.php?numero='.$donnees['numero'].'">Voir la fiche</a>';

echo '<a href="DELETE FROM formulaire WHERE numero='.$donnees['numero'].'">Supprimer la fiche fiche</a>';

echo "<br>";

echo "<br>";

}

mysql_close();

?>

Ensuite dans le fichier fiche.php (le fichier général). Je choisi le champ de la base de donnée « numero » pour être sur d’avoir la bonne fiche.

Mais dans cette partie j’ai une page blanche qui apparait :'(


<?php

$_GET['numero'];

 

mysql_connect("localhost","root","root") OR die ('impossible de se connecter');

mysql_select_db("bapa") OR die ('Sélection de la base impossible');

 

$reponse = mysql_query("SELECT * FROM formulaire WHERE numero=$_GET['numero']"); 

 

while ($donnees = mysql_fetch_array($reponse) )

{

echo $donnees['nom'];

echo "<br>";

}

mysql_close();

?>
Pour résumer j’arrive a lister le nom de chaque personne qui est dans la base de donné mais le lien qui pointe sur la fiche « GLOBAL » de chaque personne ne fonctionne pas ainsi que le lien pour supprimer la fiche voulu



Merci de votre aide prochaine

Si je me suis mal exprimé dite le moi et j’essayerai d’expliquer autrement

Posté : 30 janv. 2008, 10:27
par dread
Salut angelusflm.
J'ai remarqué une syntaxe qui pourrait te poser problème sur ton fichier fiche.php:
$reponse = mysql_query("SELECT * FROM formulaire WHERE numero=$_GET['numero']");
Je pense qu'il faudrait plutôt quelque chose comme ca:
$reponse = mysql_query("SELECT * FROM formulaire WHERE numero='".$_GET['numero']."'");

Posté : 30 janv. 2008, 10:38
par dogmongo
Bonjour,

moi je fais :wink:
$reponse = mysql_query("SELECT * FROM formulaire WHERE numero=\"$_GET[numero]\"); 
ou encore
$numero=$_GET['numero'];
$reponse = mysql_query("SELECT * FROM formulaire WHERE numero=\"$numero\");
par contre ca je ne comprends pas
??
$_GET['numero']; 

Posté : 30 janv. 2008, 10:48
par d0m
en général il vaut toujours mieux sortir les variables PHP des chaines de carctères.
au lieu d'écrire :
echo "ma valeur : $mavaleur";
écrire plutôt :
echo "ma valeur : ".$mavaleur;
Ca a l'avantage :
- etre plus lisible
- éviter à l'interpreteur de devoir reconnaitre $mavaleur dans la chaine comme une variable.

sinon pour ton problème angelusflm, la page blanche peut avoir 2 grandes causes :
- un problème de syntaxe qui empeche le code de s'éxecuter
- tu n'affiches rien, ce qui dans ton cas reviendrait à ne pas entrer dans la boucle.

fais à la fin de ton fichier dans un premier temps un
....
echo 'la page est executee';
?>
pour vérifier si c'est un problème de syntaxe ou de boucle.

si il est affiché => problème de boucle
sinon => problème de syntaxe

conseils de debuggage :

problème de syntaxe :
mets toutes tes lignes entre commentaires (sauf le echo final) et decommente les une à une jusqu'à identifier celle qui pose problème.

problèmes de boucle :
vérifie le nombre de lignes de ton résultat sql :
echo 'nb de lignes : '.mysql_num_rows($reponse);

Re: Faire parler la base de donner

Posté : 30 janv. 2008, 11:49
par iclo
echo '<a href="DELETE FROM formulaire WHERE numero='.$donnees['numero'].'">Supprimer la fiche fiche</a>';
Je doute que cela soit une url valide ;)

Posté : 30 janv. 2008, 12:56
par angelusflm
Merci beaucoup pour vos aide :) j'ai réussi avec
$reponse = mysql_query("SELECT * FROM formulaire WHERE numero='".$_GET['numero']."'");
Par contre je cherches maintenant pour supprimer et faut maintenant que je recherche pour pouvoir modifier les données déja affiché dans la base de donnée (jai encore du taff :x)

Mais je vous remercie beaucoup pour votre aide

Posté : 30 janv. 2008, 16:05
par Invité
J'ai trouvé :) en faite je devais crée un fichier delete.php et mettre ma requete dedans :)

Posté : 30 janv. 2008, 16:59
par dogmongo
éviter à l'interpreteur de devoir reconnaitre $mavaleur dans la chaine comme une variable.
tu veux dire que ca peu jouer un role sur les resources serveur et le delai d'execution du scripts ? :roll:

Posté : 30 janv. 2008, 18:08
par Truc
éviter à l'interpreteur de devoir reconnaitre $mavaleur dans la chaine comme une variable.
tu veux dire que ca peu jouer un role sur les resources serveur et le delai d'execution du scripts ? :roll:
Oui... certes minime mais oui quand même

@angelusflm
Tu ferais bien de lire un peu de documentation sur "l'injection SQL" et mysql_real_escape_string() :)

Posté : 30 janv. 2008, 18:14
par dogmongo
super interessant je vais etudier ca de pret , merci pour l'info ! :wink: