Page 1 sur 1
Php Mysql
Posté : 19 avr. 2013, 14:12
par saltogr
Salut j'ai un petit problème
Dans une page, j'appelle un Post relative a une ID que les autres insère dans un Input
Les post et les Id sont dans ma base mysql
Le problème c'est que je veux afficcher un message d'erreur si l'ID n'existe pas et verfier avant tous s'il existe
voilà
$titre=$_GET['tit'];
$sql = "SELECT id FROM table0 WHERE titre='.mysql_escape_string($titre).'";
$req = mysql_query($sql);
$data = mysql_num_rows($req);
if($data<1){
echo 'Il existe';
}else{
echo 'ca n'existe pas ';
}
Ceci affiche toujours "Existe"
Re: Php Mysql
Posté : 19 avr. 2013, 14:30
par moogli
salut,
select count(*) as nb from table0 where lacondition=lavaleur
ton jeux de résultat à une ligne et un colonne (nb).
Nb retourne le nombre de ligne répondant au prédicat lacondition=lavaleur
@+
Re: Php Mysql
Posté : 19 avr. 2013, 14:48
par saltogr
Meme si je met (SELECT COUNT(*) AS nb FROM table0 WHERE titre='$tit')
et je met aussi Un titre qui existe, ceci affiche toujours existe pas
Merci MOOGLi pour ta reponse
Chiu toujours en attente de vos réponse
Re: Php Mysql
Posté : 19 avr. 2013, 16:05
par yann18
Salut j'ai un petit problème
Dans une page, j'appelle un Post relative a une ID que les autres insère dans un Input
Les post et les Id sont dans ma base mysql
Le problème c'est que je veux afficcher un message d'erreur si l'ID n'existe pas et verfier avant tous s'il existe
voilà
$titre=$_GET['tit'];
$sql = "SELECT id FROM table0 WHERE titre='.mysql_escape_string($titre).'";
$req = mysql_query($sql);
$data = mysql_num_rows($req);
if($data<1){
echo 'Il existe';
}else{
echo 'ca n'existe pas ';
}
Ceci affiche toujours "Existe"
il y'a un problème dans ta condition if ,tu fais exactement l'inverse du résultat attendu .
$data = mysql_num_rows($req);
if($data!==FALSE){ //ou :if($data>=1)
echo 'Il existe';
}else{
echo "ca n'existe pas ";
}
Re: Php Mysql
Posté : 19 avr. 2013, 16:08
par ctzwayna
salut
Si tu regarde ton code, y'a une confusion entre les guillemets et les apostrophes.
$titre=$_GET['tit'];
$sql = "SELECT id FROM table0 WHERE titre='.mysql_escape_string($titre).'"; <======= l'erreur est là
$sql = "SELECT id FROM table0 WHERE titre='".mysql_escape_string($titre)."'";<======= l'erreur corrigé
$req = mysql_query($sql);
$data = mysql_num_rows($req);
if($data<1){
echo 'Il existe';
}else{
echo 'ca n'existe pas ';
}
Re: Php Mysql
Posté : 19 avr. 2013, 19:49
par saltogr
Qui peux m'aider a réaliser ceci avec la fonction COUNT(*)
Re: Php Mysql
Posté : 19 avr. 2013, 19:56
par moogli
par exemple
<?php
if (!empty($_GET['tit'])) {
$conn = mysqli_connect($host, $user, $passwd, $dbname);
$sql = 'SELECT count(*) FROM table0 WHERE titre=\'' . mysqli_real_escape_string($_GET['tit']) . '\'';
$req = mysqli_query($sql, $conn);
if ($req === false) {
echo 'Erreur SQL :', mysqli_error($conn);
} else {
$data = mysqli_fetch_assoc($req);
if ($data['nb'] < 1) {
echo 'Il existe';
} else {
echo 'ca n\'existe pas ';
}
mysqli_free_result($req);
}
} else {
// pas de requête parce que l'url ne contient pas le paramètre
}
requête de base, je te conseil des cours / tuto sur SQL
PS : mysqli plutôt que mysql voir dans la doc

@+
Re: Php Mysql
Posté : 20 avr. 2013, 00:02
par saltogr
ça marche toujours pas toujour ça affiche "existe pas" dans tous les cas...
<?php
mysql_connect('localhost','root','')or die('Couldn\'t connect to t he database');
mysql_select_db('base_0') or die ('Couldn\'t find the db');
$mol=$_GET['tot'];
$sql = "SELECT count(*)AS nb FROM table0 WHERE titre='($mol)'";
$req = mysql_query($sql);
$data= mysql_fetch_assoc($req);
if($data['nb']=FALSE)
{
echo 'Existe';
}else{
echo 'Existe sqdlg';
}
?>
Re: [RESOLU] Php Mysql
Posté : 20 avr. 2013, 12:21
par ctzwayna
Slt,
Essayes ça
<?php
mysql_connect('localhost','root','')or die('Couldn\'t connect to the database');
mysql_select_db('base_0') or die ('Couldn\'t find the db');
$mol=$_GET['tot'];
$sql = "SELECT count(*)AS nb FROM table0 WHERE titre='$mol'"; //j'ai enlevé les parenthèses
$req = mysql_query($sql);
$data= mysql_fetch_assoc($req);
if($data['nb']!=0){ //$data['nb'] ne donne pas true ou false mais donne un chifre.
echo 'Existe';
}else{
echo 'Existe pas';
}
?>