Probleme if(mysql_num_rows($query) == 0) die

Fermé
touneair Messages postés 3 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 6 décembre 2011 - 5 déc. 2011 à 12:40
touneair Messages postés 3 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 6 décembre 2011 - 6 déc. 2011 à 15:31
Bonjour,

je débute en php et j'essaie de créer une base administration.
Dans un formulaire je souhaite récupérer les champs de ma base de données.
Mon problème est que, mon formulaire s'affiche mais je n'arrive pas a récupéré se qu'il y a dans ma base.dés que je met :
if(mysql_num_rows($query) == 0) die ('Identifiant errone');
Plus rien ne s'affiche alors que je suis connecter...

Voici mon code entier:


if (isset($_POST['modifier'])) {

$id = $_POST['actusid'];

$titre = $_POST['actustitre'];

$texte = $_POST['actustexte'];


if ($err == ''){

$sql = "UPDATE actus
SET actusTitre = '$titre',actusTexte = '$texte',actusPhoto = '$photo'
WHERE actusId = '$id'";

mysql_query($sql);
//mysql_error($sql);

$msgposte = true;

}


} else {

$id='';
if (isset($_GET['id']))$id = $_GET['id'];
$sql = "SELECT * FROM actus
WHERE actusId = '$id'";

$query = mysql_query($sql); // resultat de la requete

if(mysql_num_rows($query) == 0) die ('Identifiant errone'); //Récupère le nombre de lignes d'un jeu de résultat

$data = mysql_fetch_assoc($query); //retourne un tableau associatif qui contient la ligne lue dans le résultat
//----------------------------------------------------------

$titre = ($data['actusTitre']);
$texte = ($data['actusTexte']);
}

Merci de votre aide!!
Bonne journée


4 réponses

thosting Messages postés 167 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 6 décembre 2011 27
Modifié par thosting le 5/12/2011 à 12:58
Attention ! Tu créés des failles de sécurité dans ton script PHP ( toujours mettre htmlentities($_POST...); et htmlentities($_GET...); )

Pour retourner ton tableau $data il fallait faire une boucle while()
Ah aussi la variable $err au lieu de faire $err = '' vaut mieux utiliser empty($err)


<?
if (isset(htmlentities($_POST['modifier']))) {
$id = htmlentities($_POST['actusid']);
$titre = htmlentities($_POST['actustitre']);
$texte = htmlentities($_POST['actustexte']); $err = "";

$dbhost = "localhost";
$dblogin = "login_sql";
$dbpassword = "pass_sql";
$dbname = "db_name";

if (empty($err)) {
$db = mysql_connect($dbhost, $dblogin, $dbpassword); mysql_select_db($dbname,$db);
$sql = "UPDATE actus SET actusTitre = '$titre',actusTexte = '$texte',actusPhoto = '$photo' WHERE actusId = '$id'";
mysql_query($sql); //mysql_error($sql);
$msgposte = true;
}

} else {
$id=''; if (isset(htmlentities($_GET['id'])))$id = htmlentities($_GET['id']);
$db = mysql_connect($dbhost, $dblogin, $dbpassword); mysql_select_db($dbname,$db);
$sql = "SELECT * FROM actus WHERE actusId = '$id'";
$query = mysql_query($sql); // resultat de la requete

if(mysql_num_rows($query) == 0) die ('Identifiant errone');

while($data = mysql_fetch_assoc($query)) {

$titre = ($data['actusTitre']);
$texte = ($data['actusTexte']);

}

}
?>

--
Nous sommes là pour vous ! ServeurCounter.fr votre solution de location de serveur de jeu, VPS, IRC, Webradio à des prix discount ! Les CoreGames sont disponibles, ceci permet de créer le nombre illimités de serveurs via un panel d'administration CorePanel.
0
thosting Messages postés 167 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 6 décembre 2011 27
5 déc. 2011 à 13:38
while($data = mysql_fetch_assoc($query)) {

$titre = $data['actusTitre']; //MODIF A FAIRE
$texte = $data['actusTexte']; //MODIF A FAIRE

}
echo $titre."<br>"; //MODIF A FAIRE
echo $texte."<br>"; //MODIF A FAIRE
}
?>
0
thosting Messages postés 167 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 6 décembre 2011 27
5 déc. 2011 à 16:32
Ah j'ai pas fait gaffe enleve ca :

if(mysql_num_rows($query) == 0) die ('Identifiant errone'); //Récupère le nombre de lignes d'un jeu de résultat

Ca sert a rien ou alors met :

if (mysql_num_rows($query) == 0) {
echo "Identifiant errone";
exit;
}
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
5 déc. 2011 à 13:31
même remarques que thosting

et rajoutes un echo pour voir:

...
} else {

	$id='';
	if (isset($_GET['id']))$id = $_GET['id'];
	echo "id recu en GET : ".$id;
....
0
touneair Messages postés 3 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 6 décembre 2011
5 déc. 2011 à 16:52
Merci beaucoup pour vos réponse!!!
Je vais tester sa au plus vite et je vous dis.
0
thosting Messages postés 167 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 6 décembre 2011 27
Modifié par thosting le 5/12/2011 à 18:16
modifie ca par tes identifiants sql et nom de la base de donnée :

$dbhost = "localhost";
$dblogin = "login_sql";
$dbpassword = "pass_sql";
$dbname = "db_name";
0
touneair Messages postés 3 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 6 décembre 2011
6 déc. 2011 à 15:31
Merci beaucoup pour vos réponses!
Effectivement sa marche!!que du bonheur!
Bonne fin de journée!
0