SONDAGE SANS BASE DE DONNÉES

Bricomix Messages postés 340 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 14 février 2005 - 26 mai 2004 à 13:12
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 8 mai 2007 à 20:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23161-sondage-sans-base-de-donnees

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 mai 2007 à 20:48
peu apres avoir goute au php, on goute au mysql (ou on abandonne, mais faut etre lache), tu verras, c'est un outil puissant et simple a la fois
cs_carate Messages postés 57 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 1 novembre 2007
8 mai 2007 à 20:35
Oui mais je sais pas l'utiliser moi alors ...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 mai 2007 à 18:55
carate, les bdd sont des choses super puissantes...
cs_carate Messages postés 57 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 1 novembre 2007
8 mai 2007 à 17:22
super ton truc
rien que sans base de donné ma journé commence bien !!!!
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 déc. 2006 à 22:14
bon, histoire de troller un peu, pourquoi ce rejet des BDD ?
Firey Messages postés 3 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 23 décembre 2006
22 déc. 2006 à 21:20
Je hais les bases de sonnées, donc le livre d'or, le tag-board, les commentaires de mon site sont fait sans SQL! Je hais les SQL!! C'est le pire trucs que la vie m'a fait!!! Je suis heureuse de ce script!
Fais en d'autre sans SQL!!
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 avril 2006 à 19:17
"mais il faut voir aussi le côté rapidité et simplicité !"=> il est bien plus simple de faire une requette que de modifier un fichier texte... coté rapidité, ça n'est pas forcément vrai, mais tu es bien plus rapide si ton script cré des fichiers html, et pas des bases .txt...
$fp = fopen($sujet.".txt", "w");
il manque un or die...

si vous testez un jours, une BDD mysql avec des jointures externes, faites des benchs, et vous verrez toute la puissance que ça a... c'est bien plus simple à utiliser en plus...

utilise <?php à la place de <? (sinon, l'interpréteur xml va merder...)

#
# if ($contenu==1) $value1++;
# if ($contenu==2) $value2++;
# if ($contenu==3) $value3++;
# if ($contenu==4) $value4++;
# if ($contenu==5) $value5++;
utilise une variable dynamique, ou un eval...

évite les ", met des ' à la place, toi qui veut optimiser...
cs_kenshin15 Messages postés 24 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 1 juin 2005
29 avril 2005 à 19:43
j'aime bien ton code je suis d'accord ac toi c chien les base de donné ac les table ...
erestrebian Messages postés 2 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 12:02
tu crées une page php et tu colles ca tout a fait en haut:

<?
session_start();

$sujet="site";
$buttonsubmit="b1";

$lignes=file($sujet.".txt");

$value11=trim(stripslashes(strtok($lignes[0],"\n")));
$value21=trim(stripslashes(strtok($lignes[1],"\n")));
$value22=trim(stripslashes(strtok($lignes[2],"\n")));
$value23=trim(stripslashes(strtok($lignes[3],"\n")));
$value24=trim(stripslashes(strtok($lignes[4],"\n")));
$value25=trim(stripslashes(strtok($lignes[5],"\n")));

if((!empty($_GET['montant']))&&($_SESSION['note']!="vote"))
{
$infini = time() + 3600*24*31 ; // Durée d'existence du cookie
setcookie($sujet,"vote=1",$infini);
$fp = fopen($sujet.".txt", "w");
$contenu = $_GET['montant'];
switch ($contenu)
{
case "rien": $value11++; break;
case "depart": $value21++; break;
case "50": $value22++; break;
case "100": $value23++; break;
case "150": $value24++; break;
case "200": $value25++; break;
default: break;
}

$datavote= $value11."\n".$value21."\n".$value22."\n".$value23."\n".$value24."\n".$value25;

fputs($fp, $datavote);
fclose($fp);
$_SESSION['note']="vote";
}

function affiche_result($value11,$value21,$value22,$value23,$value24,$value25)
{
$c1=$c2=$c3=$c4=$c5=$c6='bleu.jpg';

$valmax=max($value11,$value21,$value22,$value23,$value24,$value25);
$valmin=min($value11,$value21,$value22,$value23,$value24,$value25);
switch ($valmax)
{
case $value11: $c1='vert.jpg'; break;
case $value21: $c2='vert.jpg'; break;
case $value22: $c3='vert.jpg'; break;
case $value23: $c4='vert.jpg'; break;
case $value24: $c5='vert.jpg'; break;
case $value25: $c6='vert.jpg'; break;
default: break;
}
switch ($valmin)
{
case $value11: $c1='rouge.jpg'; break;
case $value21: $c2='rouge.jpg'; break;
case $value22: $c3='rouge.jpg'; break;
case $value23: $c4='rouge.jpg'; break;
case $value24: $c5='rouge.jpg'; break;
case $value25: $c6='rouge.jpg'; break;
default: break;
}

$total=$value11+$value21+$value22+$value23+$value24+$value25;
$pourcent11b=(int)$pourcent11=round((($value11*100)/$total),2);
$pourcent21b=(int)$pourcent21=round((($value21*100)/$total),2);
$pourcent22b=(int)$pourcent22=round((($value22*100)/$total),2);
$pourcent23b=(int)$pourcent23=round((($value23*100)/$total),2);
$pourcent24b=(int)$pourcent24=round((($value24*100)/$total),2);
$pourcent25b=(int)$pourcent25=round((($value25*100)/$total),2);



echo 'Faut-il donner de l\'argent pour
un passage de niveau?

votes, pourcentage, graphique,
----
rien, '.$value11.', '.$pourcent11.', ,
----
argent de classe, '.$value21.', '.$pourcent21.', ,
----
50 po, '.$value22.', '.$pourcent22.', ,
----
100 po, '.$value23.', '.$pourcent23.', ,
----
150 po, '.$value24.', '.$pourcent24.', ,
----
200 po, '.$value25.', '.$pourcent25.',

';
}
?>

tu ecris ton code html et tu places ca quand tu as besoin du sondage... normalement ca devrait marché sans aucun pbs...
<?affiche_result($value11,$value21,$value22,$value23,$value24,$value25);?>
tazmania37 Messages postés 46 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 10 novembre 2009
4 avril 2005 à 19:12
Là je peux pas beaucoup t'aider !
Donne moi les éventuelles erreurs que tu reçois et la description du fonctionnement que tu as.
@+
Staff2005 Messages postés 1 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 2 avril 2005
2 avril 2005 à 17:20
Moi g un probleme j'arrive pas l'insérer dans ma page.
Je travail avec dreamweaver et g essayer plusieur balise mais sans résultat je suis bloquer sur ma page g tout le scripte mais pas ce qui doit donner
Merci d'avance
tazmania37 Messages postés 46 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 10 novembre 2009
4 mars 2005 à 12:39
Salut !
Pour l'image, moi j'ai mis une image qui fait 20 pixels de haut sur 1 de large.
Mais après, c'est à toi de voir, selon la charte graphique de ton site.
si tu veux l'image : http://ri7.free.fr/stats/bleu.gif
Pour modifier la longueur, tu définit :
width='$pourcentb[4]' height='10'
si $pourcentb[4] fait 12, ton image sera de 10 * 12 pixels
si $pourcentb[4] fait 154, ton image sera de 10 * 154 pixels
et ainsi de suite
fais bien attention à bien écrire width, car j'ai souvent tendance à écrire widht et ça ne marche pas !

Je crois que j'ai été assez rapide !!!
@+
cs_masterpingouin Messages postés 28 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 14 juillet 2006
4 mars 2005 à 09:03
Woaaa!! enfin un code que j'arrive à faire marcher!
Super, juste un truc: quand je créé l'image bleu.jpg, quel dimension dois-je choisir? car j'ai essayé avec plusieurs formats, et je retrouve toujours des barres de 1pixels qui ne donnent donc pas d'idée vague sur le pourcentage des votes pour tel ou tel possibilités, peut être es un problème du code....
Bref, moi je te met 7/10!
STP Taz répond moi vite, merci!
erestrebian Messages postés 2 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 5 avril 2005
18 nov. 2004 à 18:28
j'ai fait quelques modifications qui me semblent etre interressantes sur ta sources... je vous les propose



<?php
session_start();
$sujet= "vote";
$buttonsubmit="b1";


$nboptions=5; //plus facile pour rajouter des options

$lignes=file($sujet.".txt");
for ($i=0;$i<$nboptions;$i++)
$value[$i]=trim(stripslashes(strtok($lignes[$i],"\n")));

if((!empty($_GET['note']))&&($_SESSION['note']!="vote"))
{
$infini = time() + 3600*24 ; // Durée d'existence du cookie : 1 journée
setcookie($sujet,"1",$infini); //on ne definie le cookie que si l'utilisateur a voté
$fp = fopen($sujet.".txt", "w");
$contenu = $_GET['note'];
switch ($contenu) //plus léger à traité, le test s'arrête quand la valeur est rencontrée
{
case 1: $value[0]++; break;
case 2: $value[1]++; break;
case 3: $value[2]++; break;
case 4: $value[3]++; break;
case 5: $value[4]++; break;//penser à rajouter autant d'options qu'il est nécessaire
default: break;
}
$datavote= $value[0];
for ($i=1;$i<$nboptions;$i++)
$datavote.= "\n".$value[$i];

fputs($fp, $datavote);
fclose($fp);
$_SESSION['note']="vote"; //permet de ne pas voter plusieurs fois en actualisant la page de vote
}

?>

<html>
<head>
</head>


<?php

$total=0;
for ($i=0;$i<$nboptions;$i++)
$total+=$value[$i];
for ($i=0;$i<$nboptions;$i++)
{
$pourcent[$i]=round((($value[$i]*100)/$total),2);
$pourcentb[$i]=(int)($pourcent[$i]);
}

$moyenne=array_sum($lignes) / count($lignes);



echo "<CENTER> Que pensez-vous de ce site ?

</CENTER>
<form name ="form" action='sondage.php' target="_self">
<CENTER>

Très bien,
$value[0] vote(s),
----
Bien,
$value[1] vote(s),
----
Bof,
$value[2] vote(s),
----
Nul,
$value[3] vote(s),
----
Sans avis,
$value[4] vote(s)

";

if($_SESSION['note'])
{
echo "a voté</form>";
}
else
{
echo "</form>";
}
?>
</CENTER>
<CENTER>(1 vote par jour)</CENTER>

</html>
cs_JuJuLoL Messages postés 56 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 20 novembre 2004
1 nov. 2004 à 10:38
Voilà bah c'est juste pour dire que il faut que vous créez une image

bleu.jpg

sinon vous ne verrez pas la barre...

@++
romit Messages postés 160 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 30 juin 2011
7 août 2004 à 15:35
C'est génial de ne pas utiliser de base de données !
tazmania37 Messages postés 46 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 10 novembre 2009
27 mai 2004 à 10:49
Merci pour ces commentaires, ça fait avancer mine de rien !!!
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 mai 2004 à 19:27
tu peux remplacer

if(empty($_GET['note']))
{
// ben on fait rien !
}
else
{
$fp = fopen($sujet.".txt", "w");
$contenu = $_GET['note'];

if ($contenu==1) $value1++;
if ($contenu==2) $value2++;
if ($contenu==3) $value3++;
if ($contenu==4) $value4++;
if ($contenu==5) $value5++;

$datavote= $value1."\n".$value2."\n".$value3."\n".$value4."\n".$value5;

fputs($fp, $datavote);
fclose($fp);
}


par ceci :

if(!empty($_GET['note']))

$fp = fopen($sujet.".txt", "w");
$contenu = $_GET['note'];

if ($contenu==1) $value1++;
if ($contenu==2) $value2++;
if ($contenu==3) $value3++;
if ($contenu==4) $value4++;
if ($contenu==5) $value5++;

$datavote= $value1."\n".$value2."\n".$value3."\n".$value4."\n".$value5;

fputs($fp, $datavote);
fclose($fp);
}

a +
Bricomix Messages postés 340 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 14 février 2005
26 mai 2004 à 13:12
Les bases de données ne sont pas forcément plus lentes que la lecture des fichiers texte...

Un exemple ? Imagine que tu es dans ta base de données 5000 membres... Une simple requête te permet de récupérer le nom "Brico", même si il est en 4997eme position, rapidement... Depuis un fichier texte, st'un autre problème :)

Et pour trier les membres par nom, prenom, age, ville, etc... Avec le SQL, une simple requête permet ça, alors qu'avec un fichier texte c'est beaucoup plus long et compliqué... ;)

Cela dit, je ne critique pas, j'étais pareil à mes débuts.
Rejoignez-nous