[RESOLU] mysql_result et mysqli_result

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 : [RESOLU] mysql_result et mysqli_result

Re: [RESOLU] mysql_result et mysqli_result

par polux78 » 03 nov. 2015, 17:45

Bonjour OR1

Quelle est la bonne écriture que tu me proposes par rapport à ma ligne
<input type="text" name="type" value="<?php echo $row['type']; ?>" size="20" maxlength="20">
?
Cord.
Polux78

Re: [RESOLU] mysql_result et mysqli_result

par or 1 » 03 nov. 2015, 11:35

si tu mets $row['type'], alors recopier la fonction ne sert à rien car elle n'est jamais appelée.

Re: mysql_result et mysqli_result

par polux78 » 03 nov. 2015, 08:41

Bonjour @rthur
Vi, ça fonctionne !
Ben j'aurais jamais trouvé ça tout seul.... Chuis pas allé aux écoles informatiques !

1 - recopié en bas de page
<?php
function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field];
}
?>

2 - Modifié ma ligne de commande
<input type="text" name="type" value="<?php echo $row['type']; ?>" size="20" maxlength="20">

Un grand merci
Polux78

Re: mysql_result et mysqli_result

par @rthur » 02 nov. 2015, 21:22

Il faut que tu oublies VC9/VC11, ça n'a rien à voir avec la choucroute, la seule chose qui compte, c'est le n° de version de PHP.

Et la différence ici c'est que les fonctions mysql_* disparaissent au profit de mysqli ou PDO.
Il faut donc adapter ton code à ces nouvelles fonctions.

Pour remplacer mysql_result(), tu as juste à copier coller le code donné en commentaire de la doc, où tu veux dans ta page PHP (je te conseille en bas de page) pour déclarer cette fonction.

Re: mysql_result et mysqli_result

par polux78 » 02 nov. 2015, 21:12

Tu m'as bien déjà orienté sur ce tuto, mais vu mon ignorance, je ne sais pas la traiter
<?php
function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field];
}
?>
Je ne sais pas traiter les "->" en langage procédural
Pourquoi tant de différence avec PHP VC9 ?
Je reste dans le brouillard !

Re: mysql_result et mysqli_result

par @rthur » 02 nov. 2015, 20:29

J'ai toujours vu mes php echo "id" et "type"
seul l'affichage de <input type="text"... a toujours bloqué.
Ah... Moi j'avais compris d'après tes précédents messages que tu tombais régulièrement sur des pages toute blanche sans rien affiché.
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.
Effectivement !

Donc là il te dit qu'il ne connait pas la fonction mysqli_result()
Ce qui est assez logique vu que cette fonction n'existe pas en PHP :)

Voici un commentaire dans la doc qui explique comment la recréer :
https://secure.php.net/manual/en/class. ... php#109782

Re: mysql_result et mysqli_result

par polux78 » 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.

Re: mysql_result et mysqli_result

par @rthur » 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...

Re: mysql_result et mysqli_result

par polux78 » 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>

Re: mysql_result et mysqli_result

par polux78 » 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

Re: mysql_result et mysqli_result

par @rthur » 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 !

Re: mysql_result et mysqli_result

par polux78 » 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

Re: mysql_result et mysqli_result

par @rthur » 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...

Re: mysql_result et mysqli_result

par polux78 » 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") ?

Re: mysql_result et mysqli_result

par polux78 » 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