2013-01-09 7 views
0

Mon code:PHP facile requête mysql instruction if

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = '2'"); 
if (!$result) { 
die("Tribe Error"); 
} 

Dans ce code toutes les tribus d'utilisateurs obtiennent une erreur. Mais je veux seulement que la tribu '2' obtienne une erreur. Quel est le problème dans ce code?

Merci.

EDIT: S'il vous plaît modifier sur mon code ce qui ne va pas, s'il vous plaît.

+1

Ne pas utiliser MySQL, utilisez soit MySQLi ou AOP avec des déclarations préparées –

+0

Pourquoi? Ma base de données mysql ... – user1951205

+4

@ user1951205 Pour les futurs utilisateurs de voir vos questions. Si vous le savez, génial! [** Veuillez ne pas utiliser les fonctions 'mysql_ *' dans le nouveau code **] (http://bit.ly/phpmsql). Ils ne sont plus maintenus et le [processus de dépréciation] (http://j.mp/Rj2iVR) a commencé dessus. Voir la [** boîte rouge **] (http://j.mp/Te9zIL)? En savoir plus sur [* instructions préparées *] (http://j.mp/T9hLWi) à la place, et utiliser [PDO] (http://php.net/pdo) ou [MySQLi] (http://php.net/ mysqli) - [cet article] (http://j.mp/QEx8IB) vous aidera à décider lequel. Si vous choisissez PDO, [voici un bon tutoriel] (http://j.mp/PoWehJ). – Jeremy1026

Répondre

0

Vous vérifiez si la requête a renvoyé une erreur, pas si la requête a renvoyé 1 (ou plus ...) lignes, ce qui est probablement ce que vous voulez. Une requête qui renvoie 0 lignes est toujours une requête valide. En dehors de cela, vous devriez passer à PDO (ou mysqli) et les instructions préparées avec des variables liées.

Dans PDO, vous pouvez probablement obtenir le nombre de lignes retournées rowCount(), consultez le manuel pour plus de détails sur la façon de réécrire votre code à PDO.

+0

Pouvez-vous modifier sur mon code? – user1951205

0

Je trouve cela pour vous: http://php.net/manual/en/mysqli.query.php

Ici vous pouvez apprendre à utiliser mysqli

Et le code ici sous, vous pouvez modefy vous êtes le propriétaire

EDIT: ce n'est pas bonne façon, mais essayer

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2"); 
$fetch = mysql_fetch_assoc($result); 
if (count($fetch)<1) { 
if (!$result) { 
die("Tribe Error"); 
} 
else{ 
var_dump($fetch); 
} 
+0

Je ne peux pas dire ce que je veux ... Désolé mon mauvais anglais mais je veux seulement si la tribu de l'utilisateur 2 obtenir l'erreur ... Pas besoin de mysqli – user1951205

+0

est votre colonne tribu un type d'int? ou nvarchar? – apero

+0

Tribe colonne -> tinyint (1) – user1951205

0

Mysqli on PHP official site

Modifier le code mentionné ci-dessous pour répondre à votre demande

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2") or die(mysql_error()); 
$fetch = mysql_num_rows($result); 
if ($fetch > 0) { 
    while($dets = mysql_fetch_assoc($result)){ 
     //displaying all info about current record 
     var_dump($dets); 
    } 
} 
else 
    echo "No records";