Problème pour travailler avec une base de données

Petit nouveau ! | 5 Messages

12 mai 2019, 14:58

J'ai un problème, je rédige un sondage en php 7, seulement tous les exemples sur internet son en php 3. #-o
Donc je ne sais pas comment traduire une partie de mon programme.
Voici une partie de mon code :

//on demande a notre table de nous donné tous les ip qui ressemble a l'ip de notre visiteur actuel, et qui ne sont pas daré de plus d'une heure.
$verifier = "SELECT ip FROM vote WHERE ip='$ip' AND unix > '$temps'";
$voter = $connexion->query($verifier);


if (mysqli_num_rows($voter) != 0 ){ <= C'est ici que ca ne fonctionne pas
[/b]//Si oui, ca veut dire que notre visiteur a déja voté, on lui affiche alors un message de remerciments, et les résultats.

echo
'<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
' d\'avoir voté !</strong></p>';
$sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
//on récupere le résultat des anciens votes.
$result = $connexion->query($sql);
while ($resultat =mysqli_fetch_array($result)){
$cadre[] = $resultat['reponse'];
// on récupere le resultat de notre requête, et on le stock dans un tableau.
}


merci d'avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 mai 2019, 16:09

Bonjour,

La raison est que tu mélanges 2 façons différentes de se travailler avec une base de données : mysqli et PDO

Copier/coller du code PHP3 pour essayer ensuite de le faire marcher en PHP7 n'est vraiment pas la meilleure façon d'apprendre à faire un projet en PHP car tu vas tomber sur beaucoup d’écueil comme celui-ci.
Il vaut mieux que tu apprennes correctement dès le début en suivant des tutos plutôt que de bidouiller un truc sur du code qui a plus de 20 ans (PHP3 est sorti en 1997 !)

Voici un tuto plutôt bien fait :
https://openclassrooms.com/fr/courses/9 ... es-donnees


Par ailleurs, je me suis permis de renommer ton sujet car pour avoir une aide efficace il est préférable de mettre un titre explicite par rapport au problème que tu rencontre. "incompréhension" c'est un peu... vague :-D
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

12 mai 2019, 17:41

J'ai changer en fonction de votre site mais sa ne fonctionne toujours pas, je crois que je me suis emmêler avec les variables.
Voice a quoi ca ressemble maintenant :

//on demande a notre table de nous donné tous les ip qui ressemble a l'ip de notre visiteur actuel, et qui ne sont pas daté de plus d'une heure.
$verifier = "SELECT ip FROM vote WHERE ip='$ip' AND '$unix' > '$temps'";
$voter = $connexion->query($verifier);


if $data = $voter -> rownCount() != 0 {
//Si oui, ca veut dire que notre visiteur a déjà voté, on lui affiche alors un message de remercîments, et les résultats.

echo
'<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
' d\'avoir voté !</strong></p>';

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 mai 2019, 18:10

Quels sont les messages d'erreur ?
Si il ne s'affichent pas il faut que tu regardes dans tes logs ou que tu actives leur affichage : http://php.net/error_reporting
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 mai 2019, 18:11

Et il faut vraiment que tu fasses quelques tutos pour acquérir les bases car là tu as des erreurs partout
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

12 mai 2019, 18:44

voici le message d'erreur :
Parse error: syntax error, unexpected '$data' (T_VARIABLE), expecting '(' in C:\wanpserver\www\projet_sondage\sondage.php on line 30

Vous pouvez m'aider s'il vous plait parce que je suis en galère

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 mai 2019, 22:04

Vous pouvez m'aider s'il vous plait parce que je suis en galère
On peut t'aider mais on ne va pas le faire à ta place.

voici le message d'erreur :
Parse error: syntax error, unexpected '$data' (T_VARIABLE), expecting '(' in C:\wanpserver\www\projet_sondage\sondage.php on line 30
Et donc ?
Que veux dire ce message en français ?
Qu'en déduis-tu ? Qu'as-tu essayé ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

12 mai 2019, 22:35

Se message veut dire qu'il y a un problème de syntaxe, ou que la variable $data n'est pas déclaré.
Du coup j'ai changé la formulation en fonction de votre site et j'ai changé de variable mais sa m'affiche toujours la même chose

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 mai 2019, 23:16

Non, ce message veut dire que PHP a rencontré "$data" de façon inattendue alors qu'il s'attendait à tomber sur une parenthèse ouvrante "(" à la ligne 30.

Du coup, il est vraiment nécessaire que tu fasses quelques tutos, parce que savoir faire un if() c'est quand même la base de la base, et les messages d'erreur de PHP sont quand même assez explicites en général.


https://openclassrooms.com/fr/courses/9 ... conditions
http://php.net/if
http://php.net/manual/fr/language.opera ... arison.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

13 mai 2019, 20:21

j'ai modifier en fonction de vos remarques mais il semble que l'erreur ne soit pas corrigées.
Voici le code :

//on demande a notre table de nous donné tous les ip qui ressemble a l'ip de notre visiteur actuel, et qui ne sont pas daté de plus d'une heure.
$verifier = "SELECT ip FROM vote WHERE ip='$ip' AND '$unix' > '$temps'";
$voter = $connexion->query($verifier);
$data = $voter -> rownCount()

if ($data != 0) {
//Si oui, ca veut dire que notre visiteur a déja voté, on lui affiche alors un message de remerciments, et les résultats.

echo
'<p style="font-size:20px;text-align:center;color:#660000"><strong>Merci' .
' d\'avoir voté !</strong></p>';
$sql = "SELECT reponse FROM vote WHERE titre='lieu_de_championat'";
//on récupere le résultat des anciens votes.
$result = $connexion->query($sql);
while ($resultat = $result -> fetchAll);{
$cadre[] = $resultat['reponse'];
// on récupere le resultat de notre requête, et on le stock dans un tableau.
}


Le message d'erreur que je reçois est : Parse error: syntax error, unexpected 'if' (T_IF)
Mais la je ne réussi vraiment pas ale faire fonctionner

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 mai 2019, 21:51

Erreur de syntaxe : PHP ne s'attend pas à trouver "if" à la ligne X
Du coup c'est que juste avant ton if() tu as oublié quelque chose...
Du genre de finir ta ligne de code précédente ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...