[RESOLU] PHP; my sql et POST...

Eléphanteau du PHP | 19 Messages

21 déc. 2015, 20:28

Bonsoir

Je butte sur un soucis depuis mtn pas mal de temps, j'arrive pas à trouver... :
J'ai une base de donnée, que je questionne avec un script php

Lorsque je le questionne comme ça, sans post ça fonctionne bien :
<?php
$servername = "localhost";
$username = "hamdi";
$password = "motdepasse";
$dbname = "bdd";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, nom, numero FROM ami WHERE id = 25";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Nom: " . $row["nom"]. " " . $row["numero"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>
Ici, j'obtiens l'enregistrement n°25,

cependant si je veux changer ce "25" par autrechose, par exemple 26, 28..., il me faut post.

j'ai donc fait ce code :
<?php
$servername = "localhost";
$username = "hamdi";
$password = "motdepasse";
$dbname = "bdd";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$recheche = $_POST['id'];
$sql = "SELECT id, nom, numero FROM ami WHERE id = $recheche";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Nom: " . $row["nom"]. " " . $row["numero"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>
J'envoi par POST id=25; mais là j'obtiens "0 results"
Quelqu'un sait-il pourquoi?

Merci pour votre aide

Mammouth du PHP | 2703 Messages

21 déc. 2015, 22:11

il faudrait le code du formulaire post.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

21 déc. 2015, 23:18

Bonjour,

Fais un var_dump($sql); pour voir ta requête SQL avant son exécution et vérifier qu'elle soit correcte
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 881 Messages

21 déc. 2015, 23:22

D'abord, tu devrais sortir tes variable de la commande

Code : Tout sélectionner

$sql = "SELECT id, nom, numero FROM ami WHERE id = $recheche";
devrait être

Code : Tout sélectionner

$sql = "SELECT id, nom, numero FROM ami WHERE id = ".$recheche;
Aussi, pour t'assurer des bons noms aux bonnes variables, tu peux faire afficher le tableau de ce que $_POST a reçu

Code : Tout sélectionner

var_dump($_POST);
Soyez artisans de paix

Eléphanteau du PHP | 19 Messages

22 déc. 2015, 09:43

Merci Patriboom

Cela fonctionne nicket mtn, :)

Grace à vous j'ai bien compris mon erreur

Merci à tous les contribueurs de PHP France :)