I have used following looping condition in order to update the database. I am getting multiple rows from select statement. And now i want to store those rows in database using update statement.In this condition multiple update statement are getting looped and because of that my database is not getting updated. I just want to loop update query single time and multiple rows from select statement gets stored in the database. Its just small mistake i am doing not able to identify wrong looping i guess.
Here is my code:
if($param['aktion'] == 'save-widget-news')
{
if(($param['news'])==4){
$sql=" SELECT DISTINCT ad_news_texte.headline, ad_news.datum_archiv,ad_news_texte.id
FROM autodo.ad_news_texte
INNER JOIN autodo.ad_news_oe ON ad_news_texte.news_id = ad_news_oe.id_ad_news
INNER JOIN autodo.ad_news ON ad_news_oe.id_ad_news = ad_news.id
WHERE ad_news.datum_archiv
BETWEEN curdate( ) - INTERVAL DAYOFWEEK( curdate( ) ) +28
DAY AND curdate( )";
}
elseif(($param['news'])==6){
$sql=" SELECT DISTINCT ad_news_texte.headline, ad_news.datum_archiv,ad_news_texte.id
FROM autodo.ad_news_texte
INNER JOIN autodo.ad_news_oe ON ad_news_texte.news_id = ad_news_oe.id_ad_news
INNER JOIN autodo.ad_news ON ad_news_oe.id_ad_news = ad_news.id
WHERE ad_news.datum_archiv
BETWEEN curdate( ) - INTERVAL DAYOFWEEK( curdate( ) ) +42
DAY AND curdate( )";
}
elseif(($param['news'])==10){
$sql=" SELECT DISTINCT ad_news_texte.headline, ad_news.datum_archiv,ad_news_texte.id
FROM autodo.ad_news_texte
INNER JOIN autodo.ad_news_oe ON ad_news_texte.news_id = ad_news_oe.id_ad_news
INNER JOIN autodo.ad_news ON ad_news_oe.id_ad_news = ad_news.id
WHERE ad_news.datum_archiv
BETWEEN curdate( ) - INTERVAL DAYOFWEEK( curdate( ) ) +70
DAY AND curdate( )";
}
$sql_select=mysql_query($sql);
while ($row = mysql_fetch_assoc($sql_select)) {
echo $update="UPDATE dashboard_widget_users w SET w.configuration='".mysql_real_escape_string(serialize($row['headline']))."' WHERE w.dsnr_yw_user =12 AND w.dsnr_dashboard_widget=2 ";
$update_news=mysql_query($update, $myConnection);
}
In firebug i checked here is how it is looping and executing the update condition multiple times which i dont want:
UPDATE dashboard_widget_users w
SET w.configuration='s:65:\"AutoDo! News: Neue Pflichtfelder für Neuwagen bei AutoScout24.de!\";'
WHERE w.dsnr_yw_user =12 AND w.dsnr_dashboard_widget=2;
UPDATE dashboard_widget_users w
SET w.configuration='s:65:\"New intercompany prices for delivery to Schmitz Cargobull Russia.\";'
WHERE w.dsnr_yw_user =12 AND w.dsnr_dashboard_widget=2;
UPDATE dashboard_widget_users w
SET w.configuration='s:22:\"AutoDo! startet durch.\";'
WHERE w.dsnr_yw_user =12 AND w.dsnr_dashboard_widget=2;