2011-04-22 4 views
0

Tout fonctionne ici sauf la commande UPDATE ... L'INSERT fonctionne bien mais hélas, je suis coincé.Syntaxe de la commande UPDATE

$queryLastDateArray = "SELECT date FROM schedule ORDER BY ID DESC LIMIT 1"; 
$lastDateArray = mysql_query($queryLastDateArray); 
while($row = mysql_fetch_array($lastDateArray)) 
         { 
         $lastDate = $row['date']; 
         }      
$lastDatePlusOne = date("Y-m-d", strtotime("+1 day", strtotime($lastDate))); 

$newDatesArray = GetDays($lastDatePlusOne, $_POST[date]); 
$i = 0; 
while($i < count($newDatesArray)) 
     { 
     if ((date('D', strtotime($newDatesArray[$i]))) == 'Fri') 
       { 
       $insDate = "INSERT INTO schedule (date) VALUES ('$newDatesArray[$i]')"; 
       $result = mysql_query($insDate); 
       $insEmp = "UPDATE schedule SET schedule.jakes = schedule_default.jakes FROM schedule, schedule_default WHERE schedule.date = '$newDatesArray[$i]' AND schedule_default.ID = '5'"; 
       $result2 = mysql_query($insEmp); 
       } 
     $i++; 
     } 
+0

Ne jamais utiliser de nouveau 'count' dans le pour/en ligne. Mettez dans une variable et utilisez la variable elle-même. – Pentium10

+0

@ Pentium10 - Pourquoi pas? Y a-t-il une raison autre qu'une micro-optimisation inutile? –

+0

Pour un temps de réponse à faible latence. – Pentium10

Répondre

2

Essayez d'écrire la mise à jour comme suit:

"UPDATE schedule SET schedule.jakes = (SELECT schedule_default.jakes FROM schedule_default WHERE schedule.date = '$newDatesArray[$i]' AND schedule_default.ID = '5')"; 
1

Table multiple UPDATE syntaxe est:

UPDATE schedule, schedule_default 
SET schedule.jakes = schedule_default.jakes 
WHERE schedule.date = '$newDatesArray[$i]' 
    AND schedule_default.ID = '5' 
+0

Ça l'a fait! Merci beaucoup. – Andrew

Questions connexes