2011-10-09 3 views
1

Erreur d'analyse: erreur de syntaxe, inattendue ';' dans /home/realcas/public_html/eshop/ecms/system/classes/database.php en ligne 29inattendu; mais je ne vois pas pourquoi

Voici le code sur la ligne 29

return empty($resultArray) ? "Error in Query " ? json_encode($resultArray); 

c'est la section du code qui est la question

public function select($table,$options,$where,$orderby) 
{ 
    $options = empty($options) ? "*" : $options; 
    $where = empty($where) ? "1=1" : $where; 
    $orderby = empty($orderby) ? "" : $orderby; 

    $qry = "SELECT $options FROM $table WHERE $where $orderby "; 
    $result = mysql_query($qry) or die(json_encode(array("error",mysql_error()))); 

    while(($resultArray[] = mysql_fetch_assoc($result))); 
    return empty($resultArray) ? "Error in Query " ? json_encode($resultArray); 

    return json_encode($resultArray); 
} 

Répondre

5

Vous voulez sans doute celui-ci

return empty($resultArray) ? "Error in Query " : json_encode($resultArray); 

parce que son

($condition) ? "condition is true" : "condition is false"; 

Je vois que vous utilisez déjà, je suppose qu'il était juste une faute de frappe

supprimer également cette ligne

return json_encode($resultArray); 

parce qu'il est inutile et ne se produira. De plus, je ne suis pas sûr que votre boucle while est correcte.

Résultat

public function select($table,$options,$where,$orderby) 
{ 
    $options = empty($options) ? "*" : $options; 
    $where = empty($where) ? "1=1" : $where; 
    $orderby = empty($orderby) ? "" : $orderby; 

    $qry = "SELECT $options FROM $table WHERE $where $orderby "; 
    $result = mysql_query($qry) or die(json_encode(array("error",mysql_error()))); 

    while(($row = mysql_fetch_assoc($result))){ $resultArray[] = $row; } 
    return count($resultArray) < 1 ? "Error in Query " : json_encode($resultArray); 
} 
+0

K, merci. Je l'ai fait mais quand j'ai fait un test pour voir s'il y avait une erreur (ie: pas dans le tableau) tout ce qu'il montre est un écran vide – RussellHarrower

+0

@RussellHarrower: bien sûr que non, si vous attendez json, vous pouvez 't donne le navigateur "Erorr dans Query" texte – genesis

+0

Eh bien je sais que je peux faire le json_encode suivant (array ("erreur", "pas dans la table") et c'est ce que je veux montrer si ce n'est pas dans la table? – RussellHarrower

3

Tout d'abord, vous n'avez pas besoin de la dernière déclaration return, qui est déjà couvert par le précédent op ternaire.

En second lieu, l'autre return devrait ressembler à ceci:

return empty($resultArray) ? "Error in Query " : json_encode($resultArray); 
Questions connexes