[RESOLU] Php Mysql

Eléphanteau du PHP | 12 Messages

19 avr. 2013, 14:12

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"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 avr. 2013, 14:30

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

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

19 avr. 2013, 14:48

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

Mammouth du PHP | 571 Messages

19 avr. 2013, 16:05

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 ";
}

Eléphanteau du PHP | 10 Messages

19 avr. 2013, 16:08

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 ';
}

Eléphanteau du PHP | 12 Messages

19 avr. 2013, 19:49

Qui peux m'aider a réaliser ceci avec la fonction COUNT(*)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 avr. 2013, 19:56

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 ;)
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

20 avr. 2013, 00:02

ç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';
}
?> 


Eléphanteau du PHP | 10 Messages

20 avr. 2013, 12:21

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';
}
?>