Корекция на mysql заявка

sentenello

Registered
Здравейте.


$sql = mysql_query('SELECT * FROM tipinfo WHERE napisal="'.$infotip['napisal'].'" and status="Печели"');
while($row=mysql_fetch_array($sql))
{
$all = $row['koeficent'] * $row['zalog'];
$specheleni += $all;
}

Получава се така, че когато има на страницата двама еднакви $infotip['napisal'] (потребителя) изчисленията се объкрват.

По някакъв начин трябва да се направи да взема по ид или.. и аз незнам всъщност затова питам вас.
 
$sql = mysql_query('SELECT * FROM tipinfo WHERE napisal="'.$infotip['napisal'].'" and status="Печели"');
while($row=mysql_fetch_array($sql))
{
$specheleni = 0;
$all = $row['koeficent'] * $row['zalog'];
$specheleni += $all;
}

Ако не те бърка?
 
Предполагам този код е част от по-голям цикъл с динамичен масив $infotip.
В такъв случай може да направиш така:
Преди да започне големия цикъл слагаш:
Код:
$checked = array();
И променяш кода който даде така:
Код:
$sql = mysql_query('SELECT * FROM tipinfo WHERE napisal="'.$infotip['napisal'].'" and status="Печели"');
while($row=mysql_fetch_array($sql)) {
if(in_array($infotip['napisal'], $checked)) { break; }
$all = $row['koeficent'] * $row['zalog'];
$specheleni += $all; }
$checked[] = $infotip['napisal'];
 
Първия вариант който ми даде изкарва само резултата от първия роу.
Втория вариант на код който ми даде ми изкарва резултат 95.4, а реалния е 100.8

Самата сметка която се прави е
30 * 2,2 + 20 * 1,74 което е равно на 100.8
 
Това което ми даде.
Го сложих в друг файл и работи идеално, но в този в който ми трябва не става.
Все пак едно голямо благодаря.
 
:oops: :oops: :oops: :oops:

Сорка.
Сега видях, че работи, но понагоре ми изкарало грешка.
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/progn0zi/public_html/proben/allpredicts.php on line 403


това е реда.
if (in_array($infotip['napisal'], $checked)) { break; }
 
Добави ли реда $checked = array(); ?
Трябва да се сложи преди да започне цикъла който извежда $infotip
Ако пак не стане опитай да го направиш $checked = array('0');
 
Бил съм сложил $checked преди друг масив без да искам :)
Благодаря ти много.
На мен остана да го наглася в балона :)
 

Back
Горе