Problème avec PHP MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec PHP MySQL

Re: Problème avec PHP MySQL

par two3d » 19 avr. 2024, 14:32

Depuis le temps j'ai aussi mon propre framework. :D

Re: Problème avec PHP MySQL

par Saian » 19 avr. 2024, 14:31

Ça fait un bail que je n'utilise plus ces fonctions non plus. ;)

Soit je fais du symfony et c'est doctrine, soit j'utilise un micro framework perso largement inspiré de symfony dans sa structure et j'ai un wrapper qui utilise pdo. Je l'ai appelé SimplePDO. ^^

Re: Problème avec PHP MySQL

par two3d » 19 avr. 2024, 14:19

Bien vu pour la ressource dans mysqli_query, j'avais pas fait attention car j'utilises une fonction qui me permet de l'omettre.

Déjà voir de ce côté.

Re: Problème avec PHP MySQL

par Saian » 19 avr. 2024, 13:59

Déjà y a quelque chose qui colle pas avec le code :
$retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM " . $table);
$donnees = mysqli_fetch_array($retour);
La fonction mysqli_query est sensée prendre le retour de mysqli_connect en premier paramètre et non la requête (qui vient elle en second paramètre).

Le var_dump qui retourne un null est aussi suspect.

EDIT : avec un test basique le retour est bien null mais il y a un warning sur mysqli_query :
$result = mysqli_query('SELECT * FROM toto');
var_dump($result);
Warning: mysqli_query() expects at least 2 parameters, 1 given
Et la typiquement on fait quoi ? on va regarder la documentation pour savoir quels sont ces deux paramètres.

Active le rapport d'erreur au début du script, tu ne peux pas débugguer un script sans.
ini_set('display_errors', 'On');
error_reporting(E_ALL);

https://www.php.net/manual/fr/mysqli.query.php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* "Create table" ne retournera aucun jeu de résultats */
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
printf("Table myCity créée avec succès.\n");

/* Requête "Select" retourne un jeu de résultats */
$result = mysqli_query($link, "SELECT Name FROM City LIMIT 10");
printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
$result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT);

/* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
    le jeu de résultats n'est pas clos. Tous les appels retourneront un 'out of sync' */
mysqli_query($link, "SET @a:='this will not work'");

Re: Problème avec PHP MySQL

par two3d » 19 avr. 2024, 13:55

Tu as bien à un moment donné, créé la table ?

Re: Problème avec PHP MySQL

par serge_felix » 19 avr. 2024, 13:39

Je suis nulle et j'utilise se que je suppose connaître. Mes mon serveur(NAS synology) ses mise à jours... Voilà le résultat, je me retrouve complètement dépassé.

Re: Problème avec PHP MySQL

par two3d » 19 avr. 2024, 13:26

As tu essayé dans phpMyAdmin (ou autre SGBD) ?

Re: Problème avec PHP MySQL

par serge_felix » 19 avr. 2024, 13:01

Remonse des requête est NULL
Sur le serveur, je suis en php7 et je pense de ma programmation contient du php5 donc une incompatibilit.
var_dump($retour);
/volume1/web/t/index-8.php:26: NULL
var_dump($donnees);
/volume1/web/t/index-8.php:28: NULL

Re: Problème avec PHP MySQL

par two3d » 19 avr. 2024, 12:28

Est ce que $table est définit ?

Est ce que faire la requête suivante dans phpMyAdmin retourne un résultat ?

Code : Tout sélectionner

SELECT COUNT(*) AS nbre_entrees FROM ta_table

Re: Problème avec PHP MySQL

par serge_felix » 19 avr. 2024, 11:24

Pouvez-vous me dire pourquoi les variable $retour et $donnees reste vide ?
$retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM " . $table);
$donnees = mysqli_fetch_array($retour);
Merci pour vos reponse !

Re: Problème avec PHP MySQL

par serge_felix » 09 avr. 2024, 14:33

Voici ce que j'ai fait, les valeur ne s'affiche toujour pas

Code : Tout sélectionner

mysqli_connect($servername, $username, $password); mysqli_select_db($database); $retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM $table"); $donnees = mysqli_fetch_array($retour); $timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes $retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM $table WHERE timestamp > \'" . $timestamp_5min . "\'"); $donnees = mysqli_fetch_array($retour); if ($donnees['nbre_entrees'] == 1) { // respect du singulier echo "<strong>" . $donnees['nbre_entrees'] . "</strong> visiteur connecté <br/>"; } else { echo "<strong>" . $donnees['nbre_entrees'] . "</strong> visiteurs connectés <br/"; } $jour = date('d'); $mois = date('m'); $annee = date('Y'); $aujourd_hui = mktime(0, 0, 0, $mois, $jour, $annee); $retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM $table WHERE timestamp > \'" . $aujourd_hui . "\'"); $donnees = mysqli_fetch_array($retour); if ($donnees[nbre_entrees] == 1) { // respect du singulier echo "<strong>" . $donnees['nbre_entrees'] . "</strong> visiteur aujourd'hui <br/>"; } else { echo "<strong>" . $donnees['nbre_entrees'] . "</strong> visiteurs aujourd'hui <br/>"; } $retour = mysqli_query("SELECT COUNT(*) AS nbre_entrees FROM $table"); $donnees = mysqli_fetch_array($retour); echo "<strong>" . $donnees['nbre_entrees'] . "</strong> visites au total <br/>"; echo $donnees['nbre_entrees'];

Re: Problème avec PHP MySQL

par Saian » 09 avr. 2024, 14:10

Salut, avec des " autour de la requête à la place des ' ça devrait aller mieux !

Les variables ne sont pas interprétées si la chaine est entourée de simple quotes.

Re: Problème avec PHP MySQL

par serge_felix » 09 avr. 2024, 11:48

Avec cette routine ge peu liste la base :

Code : Tout sélectionner

<h1>//------------LIRE LA TABLE-------------------------</h1> <?php $mysqli = new mysqli($servername, $username, $password, $database); $mysqli->set_charset("utf8"); $requete = "SELECT * FROM " . $table; $resultat = $mysqli->query($requete); while ($ligne = $resultat->fetch_assoc()) { echo $ligne['ip'] . ' ' . $ligne['timestamp'] . '<br>'; } $mysqli->close(); ?>
J'ai l'impression que le format de lecture des donne n'ai pas bon

Re: Problème avec PHP MySQL

par serge_felix » 09 avr. 2024, 11:39

Réponseest :
/volume1/web/t/index.php:20: class mysqli#1 (19) { public $affected_rows => int(0) public $client_info => string(79) "mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $" public $client_version => int(50012) public $connect_errno => int(0) public $connect_error => NULL public $errno => int(0) public $error => string(0) "" public $error_list => array(0) { } public $field_count => int(0) public $host_info => string(25) "Localhost via UNIX socket" public $info => NULL public $insert_id => int(0) public $server_info => string(14) "5.5.68-MariaDB" public $server_version => int(50568) public $stat => string(137) "Uptime: 268913 Threads: 1 Questions: 29882 Slow queries: 0 Opens: 498 Flush tables: 2 Open tables: 4 Queries per second avg: 0.111" public $sqlstate => string(5) "00000" public $protocol_version => int(10) public $thread_id => int(8114) public $warning_count => int(0) }

Re: Problème avec PHP MySQL

par two3d » 09 avr. 2024, 11:13

Que retourne ceci ?
$servername = "localhost";
$database = "*************";
$table = "*************";
$username = "*************";
$password = "*************";
var_dump(mysqli_connect($servername, $username, $password));