webForumDet fria alternativet

Loop

5 svar · 480 visningar · startad av Php

PhpMedlem sedan sep. 2001225 inlägg
#1

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");

itpastornMedlem sedan feb. 2007280 inlägg
#2

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?

PhpMedlem sedan sep. 2001225 inlägg
#3

Tack för svar!
Skulle föredra ett exempel som fungerar med PHP 4.

PhpMedlem sedan sep. 2001225 inlägg
#4

Någon lösning måste det väl ändå finnas för PHP-4, eller?? :q

itpastornMedlem sedan feb. 2007280 inlägg
#5

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
}
PhpMedlem sedan sep. 2001225 inlägg
#6

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?

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb