[RESOLU] Affichage anticipé

Eléphant du PHP | 256 Messages

24 mai 2016, 18:30

Oui, enfin, le message est clair, il manque la connexion en paramètre.

Code : Tout sélectionner

$results = mysqli_query($db,"select trim(Userid) as 'Userid',DATE_FORMAT(Timestamp , '%d/%m/%Y') as 'date_jour', DATE_FORMAT(Timestamp , '%T') as 'heure_jour',Version,Module from RVRTlog order by Timestamp DESC"); while ($result = mysqli_fetch_array($results)) { $Date = $result['date_jour']; $Time = $result['date_heure']; $Userid = $result['Userid']; echo "<tr><td>" . $Date . "</td><td>" . $Time . "</td><td>" . $result['Version'] . "</td><td>" . $result['Module'] . "</td>"; $users = mysqli_query($db,"SELECT Prenom,Nom,Email FROM RVRTusers where Userid like '%" . $Userid . "%' order by Dates desc"); $user = mysqli_fetch_array($users); echo "<td>" . $Userid . "</td><td>" . $user['Prenom'] . "</td><td>" . $user['Nom'] . "</td><td>" . $user['Email'] . "</td></tr>"; }
Bon, ça ne fonctionne toujours pas :
Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in ... on line 23
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in ... on line 24
en n'affichant pas tout dans un seul tableau, mais en mettant plusieurs tableaux les uns à la suite des autres, il est possible que l'affichage commence quand le premier tableau est entièrement envoyé au navigateur, donc avant la génération de toutes les lignes.
il faut donc ajouter plusieurs </table><table>
J'ai essayé de découper en tables de 100 lignes : ça ne change rien.

Mammouth du PHP | 1029 Messages

24 mai 2016, 20:08

ok montre moi tes strings de connexion a la db !
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

24 mai 2016, 20:17

ok montre moi tes strings de connexion a la db !

Code : Tout sélectionner

$db = mysql_connect('server', 'user', 'pw') or die('<img src=... mysql_select_db('dbname',$db) or die('<img src="...
Je précise que ceci fonctionne avec ma version actuelle.

Mammouth du PHP | 1029 Messages

24 mai 2016, 20:22

Et donc si je te dit que mysql n'existe plus et qu'il faut le remplacer par mysqli, comme je te le montre dans la refactorisation que je te fournit, il ne te semble pas logique de le faire également dans tes strings de connexions ????
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 09:45

Et donc si je te dit que mysql n'existe plus et qu'il faut le remplacer par mysqli
Bizarre parce que j'ai plusieurs scripts qui utilisent Mysql qui fonctionnent toujours, et je n'ai pas reçu d'info de mon hébergeur disant que je dois changer.
il ne te semble pas logique de le faire également dans tes strings de connexions ?
Peut-être, nous sommes dans le forum "PHP débutant", peux-tu me communiquer la syntaxe ?

Mammouth du PHP | 1029 Messages

25 mai 2016, 09:57

Pour info : http://php.net/manual/fr/intro.mysql.php
Soit, nous sommes sur un forum de débutant, vu le script de départ, il ne me semble pas que tu sois dénué de toute réflexions.
Un minimum de recherche ou de pragmatisme est aussi souhaitable.
J'imagine que nous pouvons manquer de pédagogie (c'est même certain), mais j'aurais au minimum cherché "mysqli php" dans un moteur de recherche.
Je peux aussi te garantir qu'a court terme ton hébergeur ne te fourniras plus ces méthodes obsolètes.
Soit je vais aller jusqu'au bout de la démarche :

Code : Tout sélectionner

$db = mysqli_connect('server', 'user', 'pw') or die('<img src=... mysqli_select_db('dbname',$db) or die('<img src="...
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 10:37

Ça ne fonctionnait toujours pas mais cette fois j'ai trouvé tout seul
ce n'est pas mysqli_select_db('dbname',$db) mais mysqli_select_db($db,'dbname')
Maintenant la première requète fonctionne mais pas la seconde

Code : Tout sélectionner

$users = mysqli_query($db,"SELECT Prenom,Nom,Email FROM RVRTusers where Userid like '%" . $Userid . "%' order by Dates desc"); $user = mysqli_fetch_array($users); echo "<td>" . $Userid . "</td><td>" . $user['Prenom'] . "</td><td>" . $user['Nom'] . "</td><td>" . $user['Email'] . "</td></tr>";
Prenom, Nom et Email sont toujours vides.

Pour info chat avec le support de mon hébergeur
Bienvenue sur le support chat de One.com.
Varoon: Bonjour! Merci d'avoir contacté l'aide en ligne de One.com. Mon nom est Varoon. Comment puis-je vous aider ?
vous: Bonjour,
Pouvez-vous me dire si one.com va continuer à supporter php Mysql ou s'il faut passer à Mysqli ?
Varoon: nous avons la version php 5.6 à monter. les codes en mysql et mysqli sont supportés. Vous pouvez changer la version PHP dans le menu PHP & Mysql dans le panneau de configuration
vous: Jusque quelle date one.com va-t-il continuer à supporter Mysql ?
Varoon: il n'y a aucune information sur cela. Nous ne savons pas à notre niveau
vous: Donc jusqu'à information contraire one.com continue à supporter Mysql ?
Varoon: oui
vous: Merci, bonne journée.

Mammouth du PHP | 1029 Messages

25 mai 2016, 10:41

Sur le site de PHP : "Cette extension est obsolète depuis PHP 5.5.0 et a été supprimée depuis PHP 7.0.0", après à toi de voir.
Pour la deuxième requête quelle est le message d'erreur?
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 10:57

Pour la deuxième requête quelle est le message d'erreur?
Il n'y a pas de message d'erreur mais les zones demandées sont toujours vides.
En d'autres termes ceci fonctionne

Code : Tout sélectionner

$users = mysql_query("SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"); $user = mysql_fetch_array($users); echo "<td>".$Userid."</td><td>".$user['Prenom']."</td><td>".$user['Nom']."</td><td>".$user['Email']."</td></tr>";
Ceci ne fonctionne pas

Code : Tout sélectionner

$users = mysqli_query($db,"SELECT Prenom,Nom,Email FROM RVRTusers where Userid like '%" . $Userid . "%' order by Dates desc"); $user = mysqli_fetch_array($users); echo "<td>" . $Userid . "</td><td>" . $user['Prenom'] . "</td><td>" . $user['Nom'] . "</td><td>" . $user['Email'] . "</td></tr>";
Userid contient bien une valeur mais Prenom, Nom et Email sont vides.

Mammouth du PHP | 1029 Messages

25 mai 2016, 11:05

La seule chose que je change dans ce code, c'est le fait de sélectionner directement les attributs et non plus l'ensemble.
On essayer avec le '*' alors

Code : Tout sélectionner

$users = mysqli_query($db,"SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"); $user = mysqli_fetch_array($users); echo "<td>" . $Userid . "</td><td>" . $user['Prenom'] . "</td><td>" . $user['Nom'] . "</td><td>" . $user['Email'] . "</td></tr>";
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 11:26

Idem, les zones sont vides !
Je mets les 2 lignes sans "code" l'une au dessus de l'autre pour mieux comparer

$users = mysql_query("SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"); OK
$users = mysqli_query($db,"SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"); NOK

$user = mysql_fetch_array($users); OK
$user = mysqli_fetch_array($users); NOK

Je ne comprends pas où est l'erreur.

Mammouth du PHP | 1029 Messages

25 mai 2016, 11:29

on peut avoir un

Code : Tout sélectionner

$users = mysqli_query($db,"SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"); var_dump($user);
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 11:37

J'obtiens ceci

NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL ...

Mammouth du PHP | 1029 Messages

25 mai 2016, 11:55

Ok, il effectue la requête, mais ne retrouve rien, de plus il manque un while, on va essayer de décomposer le truc.
Le plus simple serait d'avoir un dump de la db, sinon on peut déjà tester ceci :

Code : Tout sélectionner

echo "SELECT * FROM RVRTusers where Userid like '%".$Userid."%' order by Dates desc"."<br />"; //$users = mysqli_query($db, "SELECT * FROM RVRTusers where Userid like '%" . $Userid . "%' order by Dates desc"); //$user = mysqli_fetch_array($users); //echo "<td>" . $Userid . "</td><td>" . $user['Prenom'] . "</td><td>" . $user['Nom'] . "</td><td>" . $user['Email'] . "</td></tr>";
Reprendre les lignes généré et les tester dans PhpMyAdmin par exemple.
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 256 Messages

25 mai 2016, 12:06

La première requête fonctionne aussi bien avec Mysql qu'avec Mysqli.
La seconde fonctionne avec Mysql mais pas avec Mysqli j'ignore la raison.
Merci d'essayer de m'aider mais je vais arrêter les frais.