Faire parler la base de donner

angelusflm
Invité n'ayant pas de compte PHPfrance

30 janv. 2008, 10:20

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

Eléphant du PHP | 186 Messages

30 janv. 2008, 10:27

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']."'");
Modifié en dernier par dread le 30 janv. 2008, 13:18, modifié 1 fois.

Mammouth du PHP | 804 Messages

30 janv. 2008, 10:38

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']; 

d0m
Mammouth du PHP | 1141 Messages

30 janv. 2008, 10:48

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);

ViPHP
ViPHP | 2144 Messages

30 janv. 2008, 11:49

echo '<a href="DELETE FROM formulaire WHERE numero='.$donnees['numero'].'">Supprimer la fiche fiche</a>';
Je doute que cela soit une url valide ;)

angelusflm
Invité n'ayant pas de compte PHPfrance

30 janv. 2008, 12:56

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

Invité
Invité n'ayant pas de compte PHPfrance

30 janv. 2008, 16:05

J'ai trouvé :) en faite je devais crée un fichier delete.php et mettre ma requete dedans :)

Mammouth du PHP | 804 Messages

30 janv. 2008, 16:59

é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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 janv. 2008, 18:08

é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() :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 804 Messages

30 janv. 2008, 18:14

super interessant je vais etudier ca de pret , merci pour l'info ! :wink: