[RESOLU] Requête de séléction mysqli

Eléphanteau du PHP | 19 Messages

05 févr. 2021, 13:30

Salut,
J'essaie de faire en sorte que $_SESSION["token"] vienne de pro£_users et qu'il corresponde ) l'id qui lui même correspond à la session id ( j'éspère que vous avez pas mal à la tête)
Bref, j'ai trouvé un code que j'ai bidoullié
<?php
// On créé la requête
$req = "SELECT token FROM pro_users WHERE id = {$_SESSION['id']}";
 
// on envoie la requête
$res = $conn->prepare($req);
 
// on va scanner tous les tuples un par un
echo "<table>";
while ($data = mysqli_fetch_array($res)) {
    // on affiche les résultats
    echo "<tr><td>".$data['id']."</td><td>".$data['texte']."</td></tr>";
}
echo "</table>";
?>
Et j'ai une erreur qui apparaît, Call to a member function prepare() on null

Le token est une suite de lettres et chiffre et de signes varchar de ce type : TvC49RGdQbKHvc+45S1p8smzNbcTVyh+3xTJN

Merci par avance

Mammouth du PHP | 2703 Messages

05 févr. 2021, 15:07

"Call to a member function prepare() on null"
autrement dit $conn ne vaut pas à cet endroit ce qui est nécessaire.

Eléphanteau du PHP | 19 Messages

05 févr. 2021, 16:32

C'est à dire ? je n'ai pas bien compris or I

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 févr. 2021, 19:11

Tu fais appel à une variable $conn qui n'est définie nulle part dans ton script.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 19 Messages

06 févr. 2021, 14:49

Autant pour moi,
je ne l'avais pas mis dans le code que j'ai envoyé,
la connexion se fait bien parce que j'ai connect to db bla bla via TCP
<?php
$conn = new mysqli("", "", '', "");
if ($conn->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $conn->connect_errno . ") " . $conn->connect_error;
}
echo $conn->host_info . "\n";

// On créé la requête
$req = "SELECT token FROM pro_users WHERE id = {$_SESSION['id']}";
 
// on envoie la requête
$res = $conn->conn->prepare($req);
 
// on va scanner tous les tuples un par un
echo "<table>";
while ($data = mysqli_fetch_array($res)) {
    // on affiche les résultats
    echo "<tr><td>".$data['id']."</td><td>".$data['texte']."</td></tr>";
}
echo "</table>";
?>
D'ou vient le probleme dans ce cas la
Merci par avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 févr. 2021, 16:07

Quel est le message d'erreur ?
Si c'est toujours le même vérifie à nouveau la ligne où ça se passe que tu n'as pas une faute de frappe (genre "conn" écrit en double)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 19 Messages

06 févr. 2021, 18:54

Merci,
<?php
$conn = new mysqli("", "", '', "");
if ($conn->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $conn->connect_errno . ") " . $conn->connect_error;
}
echo $conn->host_info . "\n";

// On créé la requête
$req = "SELECT token FROM pro_users WHERE id = {$_SESSION['id']}";
 
// on envoie la requête
$res = $conn->prepare($req);
 
var_dump($req);
?>

Le contenu de req est quandhe le print "SELECT et tout" alors que je veux le resultat
comment faire ?

Avatar du membre
Mammouth du PHP | 1564 Messages

06 févr. 2021, 22:42

Utilise assoc plutôt que array (mysqli_assoc()), regarde la doc si tu veux des infos mais utiliser assoc plutôt qu'array demande moins de ressource.

Eléphanteau du PHP | 19 Messages

07 févr. 2021, 01:02

D'accord, je vais modifier ça, sais tu comment faire pour que ceci ne soit pas en erreur {
"message": "syntax error, unexpected '')'' (T_CONSTANT_ENCAPSED_STRING), expecting ')'",
$reponse = $bdd->query('SELECT * FROM web_pages WHERE company_token = (SELECT token FROM pro_users WHERE id ='{$_SESSION["id"]}')');
Merci par avance

Avatar du membre
Mammouth du PHP | 1564 Messages

07 févr. 2021, 09:14

La concaténation avec accolades "{}" fonctionne qu'avec les guillemets doubles à mon avis.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 févr. 2021, 09:53

Petit rappel sur la concaténation des variables en PHP :
http://www.phpdebutant.org/article55.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1564 Messages

07 févr. 2021, 10:10

j'ai pas trouvé d'article sur les accolades en php

Eléphanteau du PHP | 19 Messages

07 févr. 2021, 12:49

Merci,
A+