[RESOLU] mysql_result et mysqli_result

Eléphant du PHP | 61 Messages

30 oct. 2015, 17:11

EasyPHP_VC11/binaries/php/ php_runningversion/php.ini

PHP.INI – Modifié
; display_errors
; Default Value: On
; Development Value: On
; Production Value: On

; display_startup_errors
; Default Value: Off
; Development Value: On
; Production Value: On

Est ce le bon fichier ?

Eléphant du PHP | 61 Messages

30 oct. 2015, 17:28

Quand je passe à On sur les lignes avec => et que je reboot, ces valeurs reviennent à Off

EasyPHP_VC11/binaries/php/ php_runningversion/php.ini
PHP.INI – Modifié
; display_errors
; Default Value: On
; Development Value: On
=> ; Production Value: On

; display_startup_errors
; Default Value: Off
; Development Value: On
=> ; Production Value: On

; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

Est ce bon fichier ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 17:34

Ça semble être le bon fichier, mais dans ta version "modifiée", tu n'as pas fait la modif indiquée dans le tuto, regarde bien le nom de la variable à modifier/ajouter.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 17:45

J'ai créé un fichier .htaccess à la racine de "conserves"

php_flag display_errors on
php_value error_reporting E_ALL

=> Page blanche

Eléphant du PHP | 61 Messages

30 oct. 2015, 18:32

Je suis paumé !
Ou est ce bon fichier dont tu me parles ?

1 - J’ai lu dans phpinfo()
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 32767 32767
Je ne sais pas ou est le error reporting Apache pour le lire car trop gros pour notepad !

2 – J’ai modifié un fichier php.ini qui se remet à sa valeur initiale au reboot
3 – J’ai créé un .htaccess

Est-ce que ma seule ligne pour éditer la valeur « type »
<input type="text" name="type" value="<?php echo mysqli_result($res,0,"type") ?>" size="20" maxlength="20">
est OK ?

Je ne sais plus quoi faire…

Est-ce qu’un internaute peut me montrer un exemple qui fonctionne ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 19:24

Quelle est la modif que tu as effectuée dans le fichier php.ini ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 19:34

Celles éditées plus haut repérées par "=>"
EasyPHP_VC11/binaries/php/ php_runningversion/php.ini
PHP.INI – Modifié
; display_errors
; Default Value: On
; Development Value: On
=> ; Production Value: On

; display_startup_errors
; Default Value: Off
; Development Value: On
=> ; Production Value: On

; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

Quand je sauvegarde et relance PHP les valeurs initiales reviennent

Eléphant du PHP | 61 Messages

30 oct. 2015, 19:40

Pour PHP il n'y a pas d'erreur puisqu'il ne m'en retourne pas...
Il y a un loup dans ma programmation que je ne détecte pas.
(Peut être les paramètres dans mysqli_result ($res,0,"type") ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 20:09

Celles éditées plus haut repérées par "=>"

Code : Tout sélectionner

=> ; Production Value: On
Ça fait 15 fois que je te le dis, mais...
LIS LE TUTO ET APPLIQUE LE A LA LETTRE !!!!!!!!!!!!!!!!!!!

On te demande d'avoir les lignes suivantes dans ton php.ini :
error_reporting = E_ALL
display_errors = On
Là tu modifies une ligne qui démarre par un point virgule... => c'est un commentaire !!!


Pour PHP il n'y a pas d'erreur puisqu'il ne m'en retourne pas...
:shock: |*()
Il y a des erreurs dans ton code sauf que jusqu'à présent tu as été incapable de consulter le log d'erreur PHP et incapable de demander à PHP de les afficher...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 20:27

OK Chef...
Merci pour la claque !!!
Comme je me lève à 6H, je reprendrai ce sujet après mon dodo
Crois tu que je serai moins nul après 3 jours chez Dawan à 750 euros ?
Je suis veuf et je dois passer à la cuisine !!!
Bonne soirée

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 20:31

Y a pas de quoi ;-)
Au moins comme ça tu va relire attentivement le tutoriel ^^

Tu n'es pas nul, c'est simplement qu'il est quasi-impossible de débuguer un code à l'aveugle sans voir les messages d'erreur.
Avec le message d'erreur, tu sauras exactement où est le soucis et donc précisément quoi chercher.

C'est pour cette raison que je ne te dis pas où est l'erreur dans ton code mais que je préfères te forcer à activer l'affichage des erreurs pour que tu puisses être + autonome par la suite :)

Bon appétit à toi !
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

31 oct. 2015, 13:29

Hi Hi HI....!
J'ai fais ce qui est dit dans le tuto...,
Mais... je viens de comprendre qu'il y a 2 modes
1 - Développeur (faire F10 avec PSpad) et là on voit les erreurs
2 - Production (ou j'ai mon écran blanc)
En fait mon php.ini est correct. Je n'ai rien eu à modifier

Maintenant, je n'ai plus de message d'erreur
J'ai toujours mon écran vide pour afficher la cellule à modifier
(Le php echo pour voir fonctionne - le php echo <input type texte etc... est toujours vide)

// On se connecte et on choisi la base de données
$link = mysqli_connect ($host,$user,$pass,$db) or die ("Impossible de se connecter à MySQL");
// On va chercher les infos pour l'identifiant unique qui a été envoyé.
$sql = "SELECT * FROM conserves WHERE id = '$id' ";
// Récupérer les résultats
$res = mysqli_query($link, $sql);
//j'ai viré le message d'erreur qui démarrait à .$ql. - je ne sais pas pourquoi c'est la même ligne que pour lire une fiche
// Fixer les résultats
while($row = mysqli_fetch_array($res))
{
?>
<input TYPE="hidden" name="submitted" value="1"> <!-- dans le cas de modif cellule -->
<!-- prévisue des data récupérés -->
Fiche : <?php echo $id ?>&nbsp;-&nbsp; <!-- Vérif que l'id a été passé : OK -->
Type : <?php echo $row['type'] ?> <!-- Vérif que je suis bien dans ma fiche : OK -->

<!-- Affichage de la cellule pour la modifier -->
<table align="center" bgcolor=#e4e4e4 border=0 width=900>
<tr>
<td align="center">
<input type="text" name="type" value="<?php echo mysqli_result($row,0,"type") ?>" size="100" maxlength="100">
</td>
</tr>
</table>

Voilà voilou...J'attends ma prochaine baffe !
Cord.
Polux78

Eléphant du PHP | 61 Messages

01 nov. 2015, 21:35

Bonjour @rthur
Je fais le point après un W.E. à patauger…

1 – phpinfo()
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 32767 32767

2 – Les recommandations de ton tuto
error_reporting(E_ALL); // Fait

3 - Vérifié dans php.ini // OK
error_reporting = E_ALL
display_errors = On

4 - Rajouté .htaccess en tête du fichier
php_flag display_errors on
php_value error_reporting E_ALL

5 – Le commentaire #109782 – Qui est une fonction inscrite dans php
function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field];
 tout ce que je vois c’est de passer le “0” en fin de déclaration.
 Pour le reste je ne sais pas interpréter ma ligne issue de php 5.4 et modifiée comme suit :
<input type="text" name="type" value="<?php echo mysqli_result($row,"type",0); ?>"

6 – Dans mon éditeur PsPad, quand je fais une visue de la page (F10), je n’ai pas d’erreur.
Ma page est éditée comme écrite, sans les valeurs.

7 – En mode production
Je vois bien mon echo « id » & « type »
Ensuite… rien de rien…pas d’affichage de la cellule à modifier

Pour conclure
Je veux bien que @rthur me guide pour que je me débug tout seul, mais là, je bloque grave depuis 4 jours.
@rthur me signale une erreur, mais je ne sais même pas sur quelle ligne ! Aucun message d'erreur

C’est bien pour cela que je consulte PHP débutant. A 68 ans, j’ai atteint des limites certaines en autodidacte.
Je veux simplement assurer la continuité de mes 4 bases qui sont sur internet sur www.veauvy.com

Je vous livre ma dernière édition et je clos ce sujet qui devient insipide pour les internautes.
Je reprendrai ce même sujet sous une nouvelle question.
Cord.
Polux78

CODE SOURCE
1 - <html>
2 - <head>
3 - <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
4 - <TITLE>Conserves - Modif fiche</TITLE>
5 - <meta name="Generator" content="PsPad">
6 - <META NAME="description" content="Conserves">
7 - <META NAME="keywords" content="Conserves">
8 - <META NAME="author" content="moi">
9 - </head>

10 - <form method="post" action="fiche_modif_ok.php">

11 - <?PHP
12 - error_reporting(E_ALL); // Page blanche aucune erreur
13 - // phpinfo ();

14 - include ("pass/paul.inc.php"); // valid
15 - // on récupère le No "id"
16 - if(isset($_POST['id'])) $id=$_POST['id'];
17 - else $id="";
18 - // echo '<pre>', print_r($GLOBALS), '</pre>'; //l'id est bien affiché...

19 - // On se connecte et on choisi la base de données
20 - $link = mysqli_connect ($host,$user,$pass,$db) or die ("Impossible de se connecter à MySQL");
21 - // On va chercher les infos pour l'identifiant unique qui a été envoyé.
22 - $select = "SELECT * FROM conserves WHERE id = '$id' ";
23 - // Récupérer les résultats
24 - $result = mysqli_query($link, $select) or die('Erreur SQL !');
25 - while($row = mysqli_fetch_assoc($result))
26 - {
27 - ?>

28 - <input TYPE="hidden" name="submitted" value="1"> <!-- dans le cas de modif cellule -->
29 - Fiche : <?php echo $id ?>&nbsp;-&nbsp; <!-- Vérif que l'id a été passé : OK -->
30 - Type : <?php echo $row['type'] ?> <!-- Vérif que je suis bien dans ma fiche : OK -->
31 - <!-- Affichage de la cellule pour la modifier -->
32 - <table align="center" bgcolor=#e4e4e4 border=0 width=900>
33 - <tr>
34 - <td align="center">
35 - <input type="text" name="type" value="<?php echo mysqli_result($row,"type",0); ?>" size="100" maxlength="100">
36 - </td>
37 - </tr>
38 - </table>

<p align="center">
<input type="button" name="lien4" value="Accueil" onclick="self.location.href='index.html' "
style="background-color:#87d300" style="color:yellow; font-weight:bold"onclick></font>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input TYPE="submit" VALUE="Enregistrer">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>

<?php
}
mysqli_free_result($result);
?>
</form>
</body>
</html>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 nov. 2015, 15:25

Dans ton php.ini, modifie (ou ajoute) la valeur error_log :

Code : Tout sélectionner

error_log = "c:/php_error.log"
Redémarre Apache ensuite et fait un PHP info pour voir si ça a bien été pris en compte.

Mais déjà d'après ton dernier message si je comprends bien tu n'as plus de page blanche ?
C'est donc déjà que tu n'as probablement plus d'erreur PHP...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

02 nov. 2015, 18:41

J'ai toujours vu mes php echo "id" et "type"
seul l'affichage de <input type="text"... a toujours bloqué.

Pour rester sur ma clé usb3, j'ai mis l'adresse sur f:

Lecture phpinfo()
error_append_string no value no value
error_log f:easyphp_vc11/php_error.log f:easyphp_vc11/php_error.log
error_prepend_string no value no value
error_reporting 32767 32767

Lecture de f:php_error.log
[02-Nov-2015 17:19:51 Europe/Paris] PHP Fatal error:
Call to undefined function mysqli_result() in F:\EasyPHP_VC11\data\localweb\conserves\fiche_modif.php on line 44
=> Voila une info intéressante.
Mais comme ils disent en Berry "je suis comme une poule devant un sécateur" !

Ligne 44
<input type="text" name="type" value="<?php echo mysqli_result($row,"type",0); ?>" size="100" maxlength="100">

J'ai aussi essayé :
<input type="text" name="type" value="<?php echo mysqli_result($row,$type,$field=0); ?>" size="100" maxlength="100">
comme d'après le tuto : function mysqli_result($res, $row, $field=0) { ...
mais rien ! Je ne sais pas interpréter cette ligne.