2011-02-19 4 views
0

Je reçois une erreur dans ce code. Est-ce que quelqu'un voit ce que je fais mal. Ceci est l'erreur que je reçois:SQL PHP Syntax ERROR Optimization

Died You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Voici le code:

$depSQL = mysql_query("SELECT department_array FROM busDetails WHERE bus_id='".$bus_id."' LIMIT 1"); 
    while($row=mysql_fetch_array($depSQL)) 
    { 
    $depARRAY = $row["department_array"]; 
    } 
    $stSQL = mysql_query("SELECT department_id, staff_array FROM institute_departments WHERE department_id IN ($depARRAY)") or die ("Died ".mysql_error()); 
    while($get=mysql_fetch_array($stSQL)) { 
    $stARRAY = $get["staff_array"]; 
    $id = $get["department_id"]; 
    $explodedST = explode(",", $stARRAY); 
    foreach ($explodedST as $key2 => $value2) { 
     if ($value2 == $bus_id) { 
      unset($explodedST[$key2]); 
     } 
} 
$newST = implode(",", $explodedST); 
echo $id . " " . $newST . "<BR/>" ; 
$sql = mysql_query("UPDATE institute_departments SET staff_array ='$newST' WHERE  department_id='$id'"); 
} 
+0

Quand je fais l'écho de la requête que je reçois ceci:.' Mort: SELECT department_id, staff_array DE institute_departments OERE department_id IN (233,1,2,3,265,6,7,8,9,) Vous avez une erreur dans votre syntaxe SQL, consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de ')' à la ligne 1 'Je manque quelque chose? – Buki

+0

HAHAHAHAHA.Merci les gars.N'ai pas dormi depuis un moment.Je pense que c'est mon code.Savez-vous comment enlever le tableau vide? Mon code php insère en automatique. Toute aide serait génial !! merci encore – Buki

+0

Savez-vous comment supprimer la virgule supplémentaire. Pourriez-vous regarder mon code et suggérer ce que je pourrais faire. – Buki

Répondre

1
$strArray = explode(',' , trim($depARRAY)); 

$count = count($strArray); 
if(empty($strArray[$count-1])) 
    unset($strArray[$count-1]); 

$depARRAY = implode(',' , $strArray); 

Vous devez prendre soin de extra comma, tout en insérant les valeurs

+0

Salut Gaurav, ça ne marche pas. J'ai répété le résultat avant et après le 'if ($ strArray [$ count-1] == ',') unset ($ strArray [0]);' Les résultats sont les mêmes. Connaissez-vous un autre moyen de le faire? S'il vous plaît aider. – Buki

+0

Juste une erreur stupide. S'il vous plaît vérifier maintenant j'ai édité ma réponse. – Gaurav

+0

Hu Gaurav, ça a fonctionné à merveille !! J'ai essayé d'éditer votre code - je n'ai pas les droits d'édition lol: p Vous avez fait une légère erreur. Changer '$ cont' en' $ count';) – Buki

2

écho à vos questions et vous verrez probablement.

Exemple:

echo $stSQL; 

Vous avez une virgule trop. Regardez après le 9: « 7,8,9)

+0

J'ai cette erreur. Je ne vois rien de mal, n'est-ce pas? 'est mort: SELECT département_id, staff_array FROM institut_departments WHERE department_id IN (233,1,2,3,265,6,7,8,9,) Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de ')' à la ligne 1' – Buki

+0

Vous avez une virgule trop. Prenez soin de la 9: "7,8,9,)" –

+1

Vous avez une virgule supplémentaire "," après 9. Retirez le supplément, – KillerFish