[RESOLU] mysql_result et mysqli_result

Eléphant du PHP | 61 Messages

29 oct. 2015, 12:39

Bonjour,

Pouvez vous m'expliquer pourquoi

//Cle USB avec PHP 5.6 n'affiche rien (écran blanc) !
<input type="text" name="type" value='<?php echo mysqli_result($res,0,"type") ?>' size="100" maxlength="100" >

// disque dur avec PHP 5.5 affiche la cellule
<input type="text" name="type" value='<?php echo mysql_result($res,0,"type") ?>' size="100" maxlength="100" >

Dans mon précédent message, j'ai édité mes lignes, mais je n'ai pas de réponse
Mes recherches sur le net ne donnent aucun exemple pour modifier une cellule avec mysqli_result et les 3 paramètres ()
Donc je simplifie à l'extrême ma demande...

Merci pour votre aide
Polux78

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 oct. 2015, 15:17

Bonjour,

On a un tuto PHPfrance pour résoudre les problèmes de page blanche
:arrow: faq-tutoriels/page-blanche-script-php-c ... 73178.html

Et pour ton problème, il y a un commentaire dans la doc qui pourra t'aider :
https://secure.php.net/manual/fr/class. ... php#109782
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

29 oct. 2015, 18:22

Bonjour @rthur
Merci pour ta réponse.
Je veux bien mettre cette fonction dans mon php, mais comment je peux l'appeler pour chaque cellule ?
Quand j'ouvre une fiche pour modif, je peux mettre à jour une trentaine de paramètres...
Par rapport à PHP 5.5, VC9, cela ne va pas dans la simplicité avec PHP 5.6 VC11 étonnant !
Je peux te donner mon adresse web pour voir ce que j'obtiens dans une application "conserves" à la rubrique "modification" ou "duplication" de fiche
Dans cette application (de démonstration), mon site est ouvert et modifiable (création, modification, duplication)
Je n'ai rien à cacher et je ne cherche pas à me faire de la pub.
Je voudrai simplement que cela fonctionne avec PHP 5.6
Cord. Polux78

<?php
function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field];
}
?>

Mammouth du PHP | 2703 Messages

29 oct. 2015, 18:28

<?php echo $row['type'] ?> <!-- La c'est OK -->
<!-- la ligne ci dessous n'affiche rien -->
<input type="text" name="type" value="<?php echo mysql_result($res,0,"type") ?>" size="100" maxlength="100">

pour récupérer le contenu du requete sql, il faut donc utiliser ce qui fonctionne :
$row['type']
d'où
<input type="text" name="type" value="<?php echo $row['type'] ?>" size="100" maxlength="100">

Eléphant du PHP | 61 Messages

29 oct. 2015, 18:36

Bonsoir OR1,
Cela ne donne rien!
J'ai toujours ma page blanche.
Cord. polux78

Eléphant du PHP | 61 Messages

29 oct. 2015, 18:44

Dans le monde des fourmis comme moi qui programment en VC11 PHP 5.6, il doit bien y avoir des exemples pour afficher une cellule à modifier!!!
Pourquoi je ne trouve rien sur le net ???
Cord. Polux78

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 oct. 2015, 19:59

Cela ne donne rien!
J'ai toujours ma page blanche.
Si tu as une page blanche, c'est que tu as une erreur.
Cf le tuto que je t'ai donné + haut.
Si tu ne regardes pas les messages d'erreur, c'est quasiment impossible de débuguer "à l'aveugle" un code PHP.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 09:32

Bonjour @rthur
J'ai déjà visualisé ce que tu m'as donné...
Aujourd'hui, je t'envoie les paramètres lu ce matin :
Cord. Polux78

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

PHP.ini
; display_errors
; Default Value: On
; Development Value: On
; Production Value: Off
; display_startup_errors
; Default Value: Off
; Development Value: On
; Production Value: Off

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

Mysql_error.log
2015-10-30 08:11:25 3584 [Note] Plugin 'FEDERATED' is disabled.
2015-10-30 08:11:25 3584 [Note] InnoDB: The InnoDB memory heap is disabled
2015-10-30 08:11:25 3584 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2015-10-30 08:11:25 3584 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-10-30 08:11:25 3584 [Note] InnoDB: Not using CPU crc32 instructions
2015-10-30 08:11:25 3584 [Note] InnoDB: Initializing buffer pool, size = 20.0M
2015-10-30 08:11:25 3584 [Note] InnoDB: Completed initialization of buffer pool
2015-10-30 08:11:25 3584 [Note] InnoDB: Highest supported file format is Barracuda.
2015-10-30 08:11:28 3584 [Note] InnoDB: 128 rollback segment(s) are active.
2015-10-30 08:11:28 3584 [Note] InnoDB: Waiting for purge to start
2015-10-30 08:11:28 3584 [Note] InnoDB: 5.6.15 started; log sequence number 1868614
2015-10-30 08:11:32 3584 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
2015-10-30 08:11:32 3584 [Note] - '127.0.0.1' resolves to '127.0.0.1';
2015-10-30 08:11:32 3584 [Note] Server socket created on IP: '127.0.0.1'.
2015-10-30 08:11:33 3584 [Note] Event Scheduler: Loaded 0 events
2015-10-30 08:11:33 3584 [Note] F:\EASYPH~1\binaries\mysql\bin\eds-mysqld.exe: ready for connections.
Version: '5.6.15-log' socket: '' port: 3306 MySQL Community Server (GPL)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 11:09

C'est le fichier de log de PHP qu'il faut regarder principalement.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 11:27

Celui là ?

Easyphp.php
<?php
$phpversion = array();
$phpversion = array(
"status" => "0",
"dirname" => "php558x150807113445",
"name" => "PHP",
"version" => "5.5.8",
"date" => "2015-08-07 11:34:45",
"notes" => "",
);
?>

Eléphant du PHP | 61 Messages

30 oct. 2015, 11:43

Ou celui là, à la racine de la clé USB ?

Easyphp.log
30/10 07:53:27 EasyPHP EasyPHP Removable drive: Regenerate conf files...
30/10 07:53:34 EasyPHP EasyPHP Démarrage des serveurs
30/10 07:53:37 EasyPHP Apache ServerBase::Start ScanProcess -> 3660
30/10 07:53:37 EasyPHP CreateProcess "F:\EASYPH~1\binaries\mysql\bin\eds-mysqld.exe --defaults-file="F:\EASYPH~1\binaries\mysql\my.ini" --language=english"
30/10 07:53:44 EasyPHP EasyPHP Vérifier la version
30/10 07:56:53 EasyPHP EasyPHP Arret des serveurs
30/10 07:56:53 EasyPHP Apache stop event: ap3660_shutdown
30/10 07:56:53 EasyPHP MySqlSutdown event = MySQLShutdown5352
30/10 07:56:53 EasyPHP End EasyPHP...
30/10 07:57:51 EasyPHP EasyPHP Removable drive: Regenerate conf files...
30/10 07:57:51 EasyPHP EasyPHP Démarrage des serveurs
30/10 07:57:52 EasyPHP Apache ServerBase::Start ScanProcess -> 3660
30/10 07:57:52 EasyPHP CreateProcess "F:\EASYPH~1\binaries\mysql\bin\eds-mysqld.exe --defaults-file="F:\EASYPH~1\binaries\mysql\my.ini" --language=english"
30/10 07:57:57 EasyPHP EasyPHP Vérifier la version
30/10 07:58:57 EasyPHP EasyPHP Arret des serveurs
30/10 07:58:57 EasyPHP Apache stop event: ap3660_shutdown
30/10 07:58:58 EasyPHP MySqlSutdown event = MySQLShutdown5368
30/10 07:58:58 EasyPHP End EasyPHP...
30/10 08:11:15 EasyPHP EasyPHP Removable drive: Regenerate conf files...
30/10 08:11:20 EasyPHP EasyPHP Démarrage des serveurs
30/10 08:11:24 EasyPHP Apache CreateProcess "F:\EASYPH~1\binaries\apache\bin\eds-httpd.exe"
30/10 08:11:24 EasyPHP CreateProcess "F:\EASYPH~1\binaries\mysql\bin\eds-mysqld.exe --defaults-file="F:\EASYPH~1\binaries\mysql\my.ini" --language=english"
30/10 08:11:30 EasyPHP EasyPHP Vérifier la version
30/10 08:58:21 EasyPHP EasyPHP Arret des serveurs
30/10 08:58:21 EasyPHP Apache stop event: ap4084_shutdown
30/10 08:58:22 EasyPHP MySqlSutdown event = MySQLShutdown3584
30/10 08:58:22 EasyPHP End EasyPHP...
30/10 08:58:52 EasyPHP EasyPHP Removable drive: Regenerate conf files...
30/10 08:58:54 EasyPHP EasyPHP Démarrage des serveurs
30/10 08:58:55 EasyPHP Apache CreateProcess "F:\EASYPH~1\binaries\apache\bin\eds-httpd.exe"
30/10 08:58:55 EasyPHP CreateProcess "F:\EASYPH~1\binaries\mysql\bin\eds-mysqld.exe --defaults-file="F:\EASYPH~1\binaries\mysql\my.ini" --language=english"
30/10 08:59:00 EasyPHP EasyPHP Vérifier la version

Eléphant du PHP | 61 Messages

30 oct. 2015, 14:04

@rthur,
Sur ma clé USB, j'ai la table "conserves" que j'essaie de passer en php 5.6, mysqli
mais j'ai aussi d'autres tables - non corrigées avec mysql
Ces autres tables fonctionnent en modification/écriture cellule, sauf que j'ai le message "deprecated mysql"

Je te fourni mon fichier complet avec une seule cellule à modifier, version ultra simplifiée !
Peut être trouveras tu ou est le ou les bugs qui me plombent depuis une semaine

Cord. Polux78
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<TITLE>Conserves - Modif fiche</TITLE>
<meta name="Generator" content="PsPad">
<META NAME="description" content="Conserves">
<META NAME="keywords" content="Conserves">
<META NAME="author" content="moi">
</head>

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

<?PHP
//  error_reporting(E_ALL);  // Aucune erreur reportée
//  display_errors = On ;  // unexpected '='
//  phpinfo ();
  include ("pass/paul.inc.php"); // valid
// on récupère le No "id"
    if(isset($_POST['id']))       $id=$_POST['id'];
    else    $id="";
//    echo '<pre>', print_r($GLOBALS), '</pre>';  //l'id est bien affiché...

//  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é.
    $select = "SELECT * FROM conserves WHERE id = '$id' ";
//  Récupérer les résultats
    $result = mysqli_query($link, $select) or die('Erreur SQL !<br>'.$select.'<br>'.mysqli_error());    
//  Fixer les résultats
    $res = mysqli_fetch_assoc($result);
?>

  <input TYPE="hidden" name="submitted" value="1">  <!-- dans le cas de modif cellule -->

    Fiche : <?php echo $id ?>&nbsp;-&nbsp; <!-- Vérif que l'id a été passé : OK -->
    Type : <?php echo $res['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">
    <!-- PHP 5.6 (mysqli) sur cle USB3 : la ligne ci dessous ne s'affiche pas - Aucun message d'erreur -->
    <input type="text" name="type" value="<?php echo mysqli_result($res,0,"type") ?>" size="20" maxlength="20">
    </td>
  </tr>
</table>

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 15:21

Tu as bien une erreur PHP dans ton code.
Il faut que tu affiches les messages d'erreur, ça va t'aider pour débuguer.

Suis le tuto du pb de page blanche à la lettre pour les afficher : faq-tutoriels/page-blanche-script-php-c ... 73178.html
Et dit nous où tu bloques.

Car quand je vois ça
// display_errors = On ; // unexpected '='
C'est que tu l'as mal suivi.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

30 oct. 2015, 16:46

J'ai suivi le tuto et le site php et j'ai essayé chaque combinaison éditée sur le net
Je te livre les résultats :

// error_reporting(E_ALL); // Page blanche aucune erreur
// display_errors on ; // Parse error: syntax error, unexpected 'on'
// display_errors = on; // Parse error: syntax error, unexpected '='
// error_reporting(1); // Page blanche aucune erreur
error_reporting(-1); // Page blanche aucune erreur
// php_flag display_errors on; //Parse error: syntax error, unexpected 'display_errors'
// php_value error_reporting E_ALL; //Parse error: syntax error, unexpected 'error_reporting'
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Page blanche, pas de message d'erreur

Toujours pas de message d'erreur
dur dur...!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 oct. 2015, 16:51

Tu ne modifies pas le bon fichier alors que c'est marqué clairement dans le tuto...
Quand tout le reste a échoué, lisez le mode d'emploi...