Notice: Undefined variable: choix & Fatal error: Call to a member function fetch() on boolean

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour j’ai réaliser un autre code totalement diférent j’ai revue tout mon code mais j’ai deux erreur la premiere : Notice: Undefined variable: connection in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 24 ainsi que Fatal error: Call to a member function query() on null in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 24

1
2
3
4
5
6
7
8
9
<?php
$servername = "localhost";
$username = "root";
$password = "Mm101010";

$connection = new mysqli($servername, $username, $password);
?>

`
connection bdd
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
require("../php_presque_fini/Connect.php");?>

<!DOCTYPE html>
<html>
<head>
    <title></title>


</head>
<body>

</body>
</html>
<table>
   <tr>
     <th>Operateur</th>
     <th>SIM</th>
     <th>PUK</th>
     <th>Num ligne</th>
     <th>Volume</th>
     <th>Statut abo</th>
   </tr>    
<?php extract($_POST);
$req = $connection->query("select * from select_nom_prenom_user where PUK = '".$choix."' order by PUK asc");
    while($ligne = $req->fetch())
    {
        echo("
        <tr>
            <td>".$ligne['Operateur']."</td>
            <td>".$ligne['Num_SIM']."</td>
            <td>".$ligne['PUK']."</td>
            <td>".$ligne['Num_ligne']."</td>
            <td>".$ligne['Volume']."</td>
            <td>".$ligne['Statut_abo']."</td>
        </tr>");
    } ?>
</table>
Tableau_essaie.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<!--DOCTYPE html-->
<html>
     <?php session_start(); require("../php_presque_fini/Connect.php"); ?>
    <script><?php require("../php_presque_fini/function_selection.js"); ?></script>
    <body>
        <div id="content">
            <label>PUK :</label>
            <select id="selection_PUK" name="choix[]" onChange="request(this);">
                <option value="">-----------</option>
                <?php $req = $Connection->query("select * from select_nom_prenom_user group by PUK");
                    while($ligne = $req->fetch()) { echo("<option value='choix'>".$ligne['PUK']."</option>"); } ?>
            </select><br/><br/>
            <div id="PUK_selectionnee">
                <?php require("../php_presque_fini/Tableau_essaie.php"); ?>
            </div>
        </div>
    </body>
</html>
second page
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
function selectChoice()
{
    var container = $('#PUK_selectionnee');
    var selector = $('#choix');
    var url = '../php_presque_fini/Tableau_essaie.php';
    selector.change(function()
    {
        var value = $(this).val();
        arraySelect = new Array;
        $("select option:selected").each(function() { arraySelect.push(this.value); });

        $.ajax({ url : url, type : 'post', data : {'choix[]' : arraySelect}, success : function(data){container.html(data);} });
    });
}
javascript

Merci de votre passage

Édité par artragis

+0 -0

Cette réponse a aidé l’auteur du sujet

Glisse ça juste en dessous de $connection :

1
2
3
4
<?php
if ($connection ->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $connection->connect_errno . ") " . $connection->connect_error;
}

Et dis moi ce que cela te renvoie ;)

Édité par Dryusdan

+0 -0
Auteur du sujet

effectivement j’avais oublié } mais une fois corrigé il m’affiche la même erreur qu’au début sur c’est deux lignes

1
2
$req = $connection->query("select * from select_nom_prenom_user where PUK = '".$choix."' order by PUK asc");
    while($ligne = $req->fetch())

Édité par VinkeyGonçalvès

+0 -0

Cette réponse a aidé l’auteur du sujet

ça c’est logique pour le query, tu n’as sélectionné nul part une base de donnée, tu te connectes juste au serveur.
Mais tu as toujours ton soucis avec $connection ? Comme quoi il n’arrive pas à se connecter à la base de donnée ?

+0 -0
Auteur du sujet

non plus de soucis avec $connection je me connect bien j’ai refais ma connexion qui donne ceci:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$query="SELECT * FROM smartphone.select_nom_prenom_user";
try{
  $prep = $bdd->prepare($query);
  $prep->execute();
  $resultats = $prep->fetchAll();

}catch(Exception $e){;
  echo "Erreur ! ".$e->getMessage() ;
}
$host = "localhost";
$user = "root";
$pass = "Mm101010";
$dbn = "smartphone";
      $link = mysqli_connect($host, $user, $pass, $dbn);
$type_gestion = 1; 
switch ($type_gestion) {
    case '1':
        if (PHP_VERSION_ID < 50400) error_reporting (E_ALL | E_STRICT);
        else error_reporting (E_ALL);
  ini_set('display_errors', true);
  ini_set('html_errors', false);
  ini_set('display_startup_errors',true);     
        ini_set('log_errors', false);
  ini_set('error_prepend_string','<span style="color: red;">');
  ini_set('error_append_string','<br /></span>');
  ini_set('ignore_repeated_errors', true);
    break;
}
?>

et il m’affiche ceci: Notice: Undefined variable: choix in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 44 Call Stack: 0.0030 247848 1. {main}() C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php:0 Fatal error: Call to undefined method mysqli_result::fetch() in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 45 Call Stack: 0.0030 247848 1. {main}() C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php:0 ps: désolé pour l’attente

+0 -0
1
Undefined variable: choix 

Je ne vois aucun $choix
Dans ton script tu te connecte avec Mysqli en procédural mais tu fais des requêtes en POO ? De plus tu te connecte plus loin que tes requêtes et avec des variables différentes… Je pense que tu t’es perdu quelque part ou tu ne me donnes pas les bons morceaux de page (que tu mélanges en plus)

+0 -0
Auteur du sujet

j’ai mis en pdo tout fonction sauf la déclaration choix je les déclaré comme ceci: $choix=[’puk’] quand je le lance le code, il m’affiche ceci Notice: Array to string conversion in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 44

+0 -0
Auteur du sujet

je ne vois pas comment procédé regarde j’ai comme ceci

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
$host = "localhost";
$user = "root";
$pass = "Mm101010";
$dbn = "smartphone";

try{

  $bdd = new PDO("mysql:host=".$host.";dbname=".$dbn, $user, $pass, array(
           PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
  );
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

?>

<!DOCTYPE html>
<html>
<head>
    <title></title>


</head>
<body>

</body>
</html>
<table>
   <tr>
     <th>Operateur</th>
     <th>SIM</th>
     <th>PUK</th>
     <th>Num ligne</th>
     <th>Volume</th>
     <th>Statut abo</th>
   </tr>    
<?php 
echo[$choix];
extract($_POST);
$req = $bdd->query("select * from select_nom_prenom_user where PUK = '".$choix."' order by PUK asc");
    while($ligne = $req->fetch())
    {
        echo("
        <tr>
            <td>".$ligne['Operateur']."</td>
            <td>".$ligne['Num_SIM']."</td>
            <td>".$ligne['PUK']."</td>
            <td>".$ligne['Num_ligne']."</td>
            <td>".$ligne['Volume']."</td>
            <td>".$ligne['Statut_abo']."</td>
        </tr>");
    } ?>
</table>
ps : merci infiniment de l'aide que tu m'as apporté
+0 -0
Auteur du sujet

j’ai la modification et il m’affiche ca : Notice: Use of undefined constant choix - assumed ’choix’ in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 42 et Notice: Undefined variable: var in C:\wamp64\www\Formulaire\Form_PHP\php_presque_fini\Tableau_essaie.php on line 42 mon code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
$host = "localhost";
$user = "root";
$pass = "Mm101010";
$dbn = "smartphone";

try{

  $bdd = new PDO("mysql:host=".$host.";dbname=".$dbn, $user, $pass, array(
           PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
  );
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

?>

<!DOCTYPE html>
<html>
<head>
    <title></title>


</head>
<body>


<table>
   <tr>
     <th>Operateur</th>
     <th>SIM</th>
     <th>PUK</th>
     <th>Num ligne</th>
     <th>Volume</th>
     <th>Statut abo</th>
   </tr>    
<?php 
$choix=('Nom');
echo $var[choix];
extract($_POST);
$req = $bdd->query("select * from select_nom_prenom_user where Nom = '".$choix."' order by Nom asc");
    while($ligne = $req->fetch())
    {
        echo("
        <tr>
            <td>".$ligne['Operateur']."</td>
            <td>".$ligne['Num_SIM']."</td>
            <td>".$ligne['PUK']."</td>
            <td>".$ligne['Num_ligne']."</td>
            <td>".$ligne['Volume']."</td>
            <td>".$ligne['Statut_abo']."</td>
        </tr>");
    } ?>
</table>
</body>
</html>
+0 -0

Tu as oublié le $ à choix ligne 42
De plus, tu as une faute de syntaxe, ça fonctionne quand même mais c’est jamais utilisé : $choix=('Nom'); pas besoin d’entourer la chaine de caractère par des parenthèse vu que $choix n’est pas une fonction

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte