Aller au contenu

Débutant en language Php


Sujets conseillés

Posté

Salut,

Enlève le mysql_close() pour commencer :)

Si ta connection à la base de données est fermée, comment veux-tu travailler dessus ?

Posté

$requete = mysql_query("SELECT * FROM sondage");
echo "$requete";

Ce n'est pas de cette façon que l'on consulte une BDD...

Pour en savoir plus je te conseille une des bible du php PHP.NET.

Cherche les fonctions mysql_query, mysql_fectch_object, mysql_num_rows, etc...

Si tu bloque, on t'aidera un peu plus bien entendu :)

Posté

Salut,

Enlève le mysql_close() pour commencer
Je l'ai mis tout en bas comme ca il ferme la base en fin

Mysql_query("INSERT INTO sondage (source,text)"."VALUES ('$choix','$text')");
ceci te semble corect ???? car mon premier soucie est biensure d'alimenter la base de donnée

désolé si je suis nul j'ai commencer hier le php

merciiiii

Posté

Mysql_query("INSERT INTO sondage (source,text)"."VALUES ('$choix','$text')");

Je conseille toujours de construire la requete dans une variable avant de l'exécuter.

Ce plus simple (surtout quand la requète est compliquée), c'est plus facile pour débugger, on peut l'afficher, etc...

Donc :

$req = "INSERT INTO sondage(source, text) VALUES ('".$choix."', '".$text."')";
mysql_query($req);

De cette facon, si ca ne marche pas. Tu te fait un echo $req; et tu peux "voir" plus facilement ce qui ne va pas. Au besoin tu peux même faire un coper/coller dans phpMyAdmin pour exécuter la requète et voir ce qui ne va pas.

Posté (modifié)

Ca a l'air de marcher !

Il ne te reste plus qu'a faire la synthèse des résultats :)

Modifié par Titag
Posté

bon on va pas ce facher....

synthese heuu c'est quoi ca je sait que ca doit donner en clair les resultat avec si possible de pourcentage et d'autre chose qui brille mais je n'est mais alors aucune idee de comment le faire

Posté

Un pourcentage, ce n'est pas difficile, tout de meme !

Dans le cas :

80 pour cent des eleves ont le bac, on peut dire que dans une classe de 20 élèves, il y a 20 / 100 * 80 = 16 élèves qui l'auraient (si les stats s'avèrent juste ).

Pour ton sondage :

On sait que l'on a :

- le nombre de personnes total ayant voté, ($total_sondes)

- le nombre de personnes ayant voté le résultat A,($vote_A)

- le nombre de personnes ayant voté le résultat B.($vote_B)

On peut très rapidement en déduire que :

Pour "$total_sondés", il y a "$vote_A" votes.

Tout comme, pour 20 eleves, il y avait 16 bac.

Donc 16 pour 20

=> 80 pour 100

=> $vote_A pour $total_sondés

On ne connais ni $vote_A, ni $total_sondés, seulement "100" (puisque c'est un pourcentage).

la fonction sera :

$_A_pourcent = ( 100 / $total_sondés )*$vote_A

Idem pour B.

J'ai été clair ?

Euh...

Posté

Salut,

tu as ete bien clair mais si je ne m'abuse cela implique de mettre en decimale mes variables

on ne peut pas multiplier des choux et des carotte comme on ma toujours dit

Exemple $resultat = $vote_a*100 [je sait rien à voir] cela implique que $vote_a est un chiffre !!

Comment faire ca?

Posté (modifié)

La il va falloir compter le nombre de lignes que tu as dans ta BDD qui ont la valeur "hub" par exemple...

Pour cela, tu utilises COUNT dans ta requete SQL... (faudrait que je retrouve exactement comment on la forme, si personne ne le fait avant moi)... ;)

edit : voila j'ai verifié la requete...

Alors, dans ton cas, tu dois d'abord compter le nombre total de réponses :

$rq = "SELECT Count (source) FROM sondage":

puis compter cas par cas :

$rq = "SELECT Count (source) FROM sondage WHERE source='hubmaster'";

...

Ou alors, une autre méthode, c'est de selectionner tous les enregistrement, puis de faire une boucle, en incrémentant a chaque fois la source :

$rq = "SELECT source FROM sondage";
$req= mysql_query($rq);

$total = mysql_num_rows($res);

while($ligne = mysql_fetch_array($res));
{
if ($ligne['source'] == 'hubmaster') $reshub ++;
[etc, meme chose pour les autres]
}

Voila, je en sais pas ce que conseillent les experts en optimisation (j'en suis pas la ;))

Modifié par sarc
Posté

Et donc, compter chaque 'occurence' de 'source', tout en les nommant, ca donnerait :

select source,count(*) as votes from tablename2 group by source order by votes DESC

Tu n'as pas les 'text', mais tu as le tableau trié par source, et ordonné par vote (le plus grand en premier).

Pour le 'text', il te faut rappeler chaque ligne :

select text from tablename2 where source='$source'

Le $source étant le 'source' de la première requète.

Voilà.

ps : Dans ce cas là, 'votes' est un chiffre ;)

  • 2 semaines plus tard...
Posté

Bonjour :D

Désolé de pas avoir répondu avant, généralement mes posts passent inaperçus ;)

Alors, déjà ton erreur est la suivante :

$Ntotal = mysql_query("SELECT Count (source) FROM sondage");

$tot = mysql_num_rows($Ntotal);

Alors deja il y a un probleme dans ta syntaxe, il faut virer l'espace entre count et (source) comme ceci :

$Ntotal = mysql_query("SELECT Count(source) FROM sondage");

Ensuite, il y a une erreur de logique : avec count, tu obtiendras une variable qui te dira le nombre d'enregistrement qu'il aura trouvé... donc avec mysq_num_rows tu auras 1 !

(essaye dans mysql :D )

La ce qu'il faut faire c'est donc :

$Nreq = mysql_query("SELECT Count(source) AS nbsource FROM sondage");
$tot = mysql_result($Ntotal, 0, 'nbsource');

Ensuite tu peux refaire la meme chose avec un WHERE a la fin de la requete...

$req = mysql_query("SELECT Count(source) AS nbhub FROM sondage WHERE source='hubmaster'");
$Nhub = mysql_result($res, 0, 'nbhub');

Voila en espérant que tu comprennes mieux... (pas terrible moi pour expliquer lol)

Posté

Salut,

Pour etre clair tu me donne les phrases suivantes :

$Ntotal = mysql_query("SELECT Count(source) FROM sondage");

$Nreq = mysql_query("SELECT Count(source) AS nbsource FROM sondage");

$tot = mysql_result($Ntotal, 0, 'nbsource');

$req = mysql_query("SELECT Count(source) AS nbhub FROM sondage WHERE source='hubmaster'");

$Nhub = mysql_result($res, 0, 'nbhub');

Je réactive ma question ... d'ou vient le $res ??

J'en profite pour te demander d'ou sorte les deux nbsource et nbhub et si ce sont des variable pourquoi ne sont il pas demarer par un $ ?

voici les questions ligne par ligne

$Ntotal = mysql_query("SELECT Count(source) FROM sondage");
Pour moi cette ligne devrais mettre le nombre total d'enregistrement (source) dans la variable $Ntotal me trompe-je ?
les autres phrases  :blink:
c'est simple j'ai un peu de mal à les comprendre ......

MErci de l'aide que tu va m'apporter :yoot:

Posté

Salut,

Je réactive ma question ... d'ou vient le $res ??

Ca doit être le $req avec une erreur de frappe :)

J'en profite pour te demander d'ou sorte les deux nbsource et nbhub et si ce sont des variable pourquoi ne sont il pas demarer par un $ ?

Il ne faut pas confondre les variables php, qui commencent par un $ et les autres.

Tu vas saisir.

c'est simple j'ai un peu de mal à les comprendre ......

Prenons :

$Nreq = mysql_query("SELECT Count(source) AS nbsource FROM sondage");

Cette ligne execute une requète sur ta base de données.

Cette requete va compter le nombre de champs source de ta table sondage et va la mettre dans une variable nommée nbsource.

Ici, le résultat de la requète ne peut pas encore être exploité en php... Il faut aller "lire" le contenu de la variable $Nreq qui ne contient pas le résultat mais "pointe" vers celui-ci...

On passe donc à la ligne suivante :

$tot = mysql_result($Nreq, 0, 'nbsource');

msyql_result va prendre le dans les résultats de la requete, ligne 0 (la premiere), la valeur de nbsource et le mettre dans la variable php $tot.

Pour en savoir plus : lire cette page et les autres. Et je te conseille très vivement de te pencher sur mysql_fetch_object et éviter mysql_result :)

Posté
Cette requete va compter le nombre de champs source de ta table sondage et va la mettre dans une variable nommée nbsource.

Juste pour dire que la requète va être envoyée à la base de données, qui va la traiter et stocker le résultat. le 'nbsource' est le nom du champ contenant le résultat de 'count(). il n'y a pas création de variable, de la part de la table, mais juste création d'une table temporaire stockant le résultat de la requète. le '$req', qui est plutot '$res' est l'identifiant de cette table, indispensable pour accéder aux résultats.

A.

Posté

Bonjour,

Voici ce que j'ai pu ressortir de vos differente intervention

// Collecte des données dans la base

$Nsource = mysql_query ("SELECT count(source) AS Nbsource FROM sondage");

$Nhub = mysql_query ("SELECT count(source) AS Nbhub FROM sondage WHERE source='hubmaster'");

$Ngoogle = mysql_query ("SELECT count(source) AS Nbgoogle FROM sondage WHERE source='google'");

$Nannuaires = mysql_query ("SELECT count(source) AS Nbannuaires FROM sondage WHERE source='annuaires'");

$Nban = mysql_query ("SELECT count(source) AS Nbban FROM sondage WHERE source='Banniéres'");

$Nautre = mysql_query ("SELECT count(source) AS Nbautre FROM sondage WHERE source='autre'");

// Exploitation des données dans la base

$Tsource = mysql_result ($Nsource,0,'nbsource');

$Thub = mysql_result ($Nhub,0,'nbhub');

$Tgoogle = mysql_result ($Ngoogle,0,'nbgoogle');

$Tannuaires = mysql_result ($Nannuaires,0,'nbannuaires');

$Tban = mysql_result ($Nban,0,'nbban');

$Tautre = mysql_result ($Nautre,0,'nbautre');

// Affichage des reponses

if ($idConnexion) echo "<br>Connexion à la base : reussi<br>";

else echo "Connexion à la base : ratée <br>";

if ($connexionReussie) echo "Connexion au sondage : reussi<br>";

else echo "table sondage non atteinte<br>";

echo "Merci de ta participation : $surnom<br>";

echo "Vous avez connu ce site par : $choix <br>";

echo "Votre commentaire : $text ";

echo "<table><tr><td>Nombre de réponses au total :</td> <td>$Tsource</td></tr>";

echo "<tr><td>Nombre de réponses hubmaster : <td>$Thub</td></tr>";

echo "<tr><td>Nombre de réponses google    : <td>$Tgoogle</td></tr>";

echo "<tr><td>Nombre de réponses annuaires : <td>$Tannuaires</td></tr>";

echo "<tr><td>Nombre de réponses Banniéres : <td>$Tban</td></tr>";

echo "<tr><td>Nombre de réponses autre : <td>$Tautre</td></tr></table>";

while ($ligne = mysql_fetch_array($requete)) {

print "<table border=1>

<tr><td width=150px><b>".$ligne["login"]."</b></td> <td width=150px><b>".$ligne["source"]."</b></td><td width=550px>".$ligne["text"]."</td></tr></table>";}

et si vous allez voir sur mon site vous verrez que ...... CA MARCHE

un grand merci à tous mais ne perdez vos capacité en php ou ne les ranger pas de coté je risque d'avoir de nouveau besoin de vous d'ici peu

me connaissan :yoot: ce sera tres vite :lol:

Posté (modifié)

bonjour esprit...

Deja, j'ai essayé d'aller voir ton site, mais il y a des ptits probs d'affichage avec firefox, donc j'y suis allé avec IE.. Et plein d'erreurs 404, et pas trouvé le sondage :/

Donc jpeux pas te dire s'il marche bien :P

EDIT : arf mea culpa, j'ai regardé le site qui etait dans ton profil, et non celui de ta signature... J'ai finalement trouvé le sondage :P

;)

Modifié par sarc
Posté

Salut,

je sais que mon sondage ou page php si vous preferez n'est pas optimisée mais "il faut laisser le temps au temps".

J e vais de ce pas changer le site de mon profil

merci

Posté

Salut,

J'ameliore encore mon site en epurant le code...

Problématique :

J'ai mon sondage en php qui marche, j'ai des competence en flash du coté design et interpolation mais je ne sais pas trop comment gerer les deux

Je souhaite créer un flash qui comporterais des bouton radio et ce dis flash accederai en direct live à ma base de donnée aprés un clic sur le bouton valider.

Voici mon avancée :

Sur cette image on peut voir que j'ai cree des boutons avec dans le DATA [choix] qui correspond à ma variable $choix et dans component "autre" qui semble selon mois etre la valeur que pourra prendre ma variable $choix.

Me trompe je ???

De plus j'ai ajouter un bouton Valider mais je ne sais pas comment inserer mon code en php !!

Dois je aller dans l'action du fichier et mettre

on (press) {

php_fichiers/verif.php

}

ou
on (press) {<?php

$idConnexion = mysql_connect("localhost", "espritcool", "epsilon");

$connexionReussie = mysql_select_db("bibliotheque");

Mysql_query("INSERT INTO sondage (login,source,text)"."VALUES ('$surnom','$choix','$text')");

$requete = mysql_query("SELECT * FROM sondage");

............ ?>}

Merci de vos futurs réponses.

Posté

Bonsoir,

laisser tomber tout ca j'ai trouvé tout seul :blink::yoot:

Mais dite moi si vous aimeriez savoir comment !!

Si oui je peut faire un cours pour mon site ...

:huh: je parle pas tout seul la ??? :blink:

Posté

Passer des paramètres de Php en Flash ?

Si, ca m'intéresse ! :D

Tu fais comment ?

  • 7 months later...
Posté

Salut à tous, voila je suis tout neauveau sur ce site, et g un gros probleme..

Voila g un site avec un espace membre, et j'aimerai créé un systeme de vote inclu dans le profil de chacun des membre (automatikement)

J'ai essayé mais impossible..voila merci de m'aider!! :wacko:

cordialement jérém!!

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...