SQL-frågor skall upprepas i en loop!
Detta är ett typexempel på när man skulle kunna använda "prepared statements" om man kodar med PDO eller mysqli som gränssnitt i stället för det gamla mysql. Är PHP version 4 ett krav för dig?
5 svar · 482 visningar · startad av Php
Hej,
Följande fungerar fint under förutsättning att man anger ett värde för variabeln $id. Nu är det så att jag inte vill köra detta mot en enstaka post, utan mot alla poster som finns i tabellen. Jag behöver därför hjälp med en loop som uppfyller detta.
$sql = 'select sum(d.countval) as summa from'
. ' ('
. ' select countlogins as countval from members where m_id="$id"'
. ' union'
. ' select count(*) FROM books WHERE m_id="$id"'
. ' ) as d';
$points = mysql_query($sql);
$points = mysql_result($points, 0);
$query2 = mysql_query("UPDATE members SET points = '$points' WHERE m_id = $id");
SQL-frågor skall upprepas i en loop!
Detta är ett typexempel på när man skulle kunna använda "prepared statements" om man kodar med PDO eller mysqli som gränssnitt i stället för det gamla mysql. Är PHP version 4 ett krav för dig?
Tack för svar!
Skulle föredra ett exempel som fungerar med PHP 4.
Någon lösning måste det väl ändå finnas för PHP-4, eller??
Detta borde fungera, men koden är rätt ful.
$sql = 'select sum(d.countval) as summa from'
. ' ('
. ' select countlogins as countval from members where m_id="$id"'
. ' union'
. ' select count(*) FROM books'
. ' ) as d';
$res = mysql_query($sql);
if ( mysql_num_rows($res) ) {
while ( $row = mysql_fetch_assoc($res) ) {
$points = $row['summa'];
$res2 = mysql_query("UPDATE members SET points = '$points' WHERE m_id = $id");
if ( mysql_affected_rows($res2) !== 1 ) {
// Hantera ditt fel på lämpligt sätt
}
}
} else {
// Hantera oväntat resultat från första frågan
}
Fel på rad 12, Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
if ( mysql_num_rows($res) ) {
Någon fundering på vad det kan vara som spökar?