[RESOLU] mysql_result et mysqli_result

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

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 !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

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

Mammouth du PHP | 2703 Messages

03 nov. 2015, 11:35

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

Eléphant du PHP | 61 Messages

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