2013-05-22 1 views
0

У меня есть два запроса count из sql. Я хочу разделить результат этого двух запросов. я попробовал:Два запроса, два результата из sql, пытающихся разделить их на php

$con = mysqli_connect("localhost", "root", "", "xoxo") or die(mysqli_connect_error()); 

    $query = "SELECT COUNT(xxxx) AS a zzzz"; 

    $query1 = "SELECT COUNT(xxxx) AS b FROM zzzz WHERE xxxx = 'cccc'"; 


    $result = mysqli_query($con, $query) or die('Error querying database'); 
    $result1 = mysqli_query($con, $query1) or die('Error querying database'); 

    $row = mysqli_fetch_array($result); 
    $rowa = mysqli_fetch_array($result1); 

    $x = $row/$rowa; 

    echo $x; 

Но это говорит мне, что у него фатальная ошибка. Я также пробовал:

$ con = mysqli_connect ("localhost", "root", "", "xoxo") или die (mysqli_connect_error());

$query = "SELECT COUNT(xxxx) AS row1 FROM zzzz"; 

    $query1 = "SELECT COUNT(xxxx) AS row2 FROM zzzz WHERE xxxx = 'cccc'"; 

    $result = mysqli_query($con, $query) or die('Error querying database'); 
    $result1 = mysqli_query($con, $query1) or die('Error querying database'); 


    while ($row = mysqli_fetch_array($result)) { 

    } 

    while ($row1 = mysqli_fetch_array($result1)) { 

    } 

    echo (int)($row['row1']/$row1['row2']); 

но он сказал мне, что это деление на ноль. Однако мои строки1 и строка2 имеют значение для него.

+0

$ строка видна только внутри цикла, такая же, как и для строки $ row1. –

ответ

2

Когда вы используете цикл while, это означает, что он будет зацикливаться до тех пор, пока условие не станет ложным, что означает, что ваши и $row1 оба являются ложными. что вам нужно:

$query = "SELECT COUNT(xxxx) AS row1 FROM zzzz"; 

$query1 = "SELECT COUNT(xxxx) AS row2 FROM zzzz WHERE xxxx = 'cccc'"; 

$result = mysqli_query($con, $query) or die('Error querying database'); 
$result1 = mysqli_query($con, $query1) or die('Error querying database'); 

$row = mysqli_fetch_array($result); 
$row1 = mysqli_fetch_array($result1); 

echo (int)($row['row1']/$row1['row2']); 

ваш первый пример не работал becouse, когда вы делаете $row/$rowa вы пытаетесь разделить 2 массивы ...

+0

Не забудьте обработать $ row1 ['row2'] == 0, что приведет к ошибке PHP. – Adder

+0

Большое спасибо. Это сработало .. =] – Qianwei

0

вы должны инициализировать результат обоих запросов в while loop

попробуйте это

$row = mysqli_fetch_array($result); 
$row1 = mysqli_fetch_array($result1); 

echo (int)($row['row1']/$row1['row2']); 
Смежные вопросы