2016-07-21 6 views
-2

もう一度、こんにちは。だから、私は最初の問題を考え出しました、あまりにも多くの投稿を申し訳なく思っていますが、私はこれでヘルプが必要です。PHP(OOP):テーブルとmysql接続の論理エラー

警告:私はこれらのエラーを有する保つ、253284、ライン167、169、252の\ wamp64 \ WWW \インベントリ\インベントリの\ tableedit.php:mysqli_query()はCで与えられ、少なくとも2つのパラメータ、1を期待します285等

警告:ライン167、169、252、253284の\ wamp64 \ WWW \在庫\インベントリの\ tableedit.php、285等

:mysqli_fetch_array()は、パラメータ1がヌルCで与えられ、mysqli_resultされることを期待します

Notice:未定義のインデックス:C:\ wamp64 \ www \ inventory \ inventory \ tableedit.phpの282行、283行など

正直言って、私はこのページ全体が混乱していると思っていますが、私は本当に理由はわかりませんが、古いバージョンのMysqlで動作するようですが、廃止されたエラーが出て以来、すべてをMysqliに変更しました。これらのエラーがありました。


< ? php 
$da=date("Y-m-d"); 
$sql=mysqli_query("SELECT * FROM inventory"); 
$i=1; 
while($row=mysqli_fetch_array($sql)) 
{ 
$id=$row['id']; 
$date=$row['date']; 
$item=$row['item']; 
$qtyleft=$row['qtyleft']; 
$qty_sold=$row['qty_sold']; 
$price=$row['price']; 
$sales=$row['sales']; 

if($i%2) 
{ 
? > 


$result1 = mysqli_query("SELECT sum(sales) FROM sales where date='$da'"); 
while($row = mysqli_fetch_array($result1)) 


<?php 
    $a=$_POST['from']; 
    $b=$_POST['to']; 
    $result1 = mysqli_query("SELECT sum(sales) FROM sales where date BETWEEN '$a' AND '$b'"); 
    while($row = mysqli_fetch_array($result1)) 
    { 
     $rrr=$row['sum(sales)']; 
     echo formatMoney($rrr, true); 
    } 

    ?> 

本当にありがとうございます。ご意見、ご提案、ご意見ありがとうございます。あなたのお時間をありがとうございました!平和。

PS:これは重複しないでください。問題は異なります。

+0

mysqliには2つのパラメータが必要です。 mysqli_query($ con、 "SELECT * FROM Persons"); $ conは接続文字列 – rishal

+0

はいこれは重複しています –

+2

自分の投稿を改ざんしようとしないでください。これは許可されていません – Magisch

答えて

0

回答:

mysqli_*は、2つのパラメータを期待しています。最初のパラメータへの接続を含める必要があります。

$sql=mysqli_query($connection, "SELECT * FROM inventory"); 
/* JUST REPLACE THE NECESSARY CONNECTION VARIABLE ABOVE */ 

あなたの他のmysqli_query()と同じ操作を行います:

$result1 = mysqli_query($connection, "SELECT sum(sales) FROM sales where date='$da'"); 

はちょうどあなたが、あなたのデータベース接続を確立するためにmysqli_*拡張子を使用していることを確認してください。

$connection = new mysqli("Host", "Username", "Password", "Database"); /* REPLACE NECESSARY DATA */ 

/* CHECK CONNECTION */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

勧告:

すでにmysqli_*拡張子を使用しているので、なぜprepared statementを使うのか?コードの

あなたの最初のセット(1):

:コード(3)あなたの第三のセットに

$stmt = $con->prepare("SELECT sum(sales) FROM sales WHERE date = ?"); 
$stmt->bind_param("s", $da); 
$stmt->execute(); /* EXECUTE QUERY */ 
$stmt->bind_result($sum); /* GET THE RESULT; BIND THE SINGLE RESULT TO THIS VARIABLE; SUM OF sales COLUMN */ 
$stmt->fetch(); /* FETCH RESULT */ 
$stmt->close(); 

:コード(2)の2番目のセットに

<?php 

    $da = date("Y-m-d"); 
    $i=1; 

    $stmt = $connection->prepare("SELECT id, date, item, qtyleft, qty_sold, price, sales FROM inventory"); 
    $stmt->execute(); 
    $stmt->bind_result($id, $date, $item, $qtyleft, $qty_sold, $price, $sales); 
    while($stmt->fetch()){ 
     if($i%2){ 
      /*** YOUR ACTION HERE ***/ 
     } 
    } 
    $stmt->close(); 

?> 

<?php 

    $stmt = $con->prepare("SELECT sum(sales) FROM sales WHERE date BETWEEN ? AND ?"); 
    $stmt->bind_param("ss", $_POST["from"], $_POST["to"]); 
    $stmt->execute(); 
    $stmt->bind_result($rrr); 
    $stmt->fetch(); 
    $stmt->close(); 

    echo formatMoney($rrr, true); 

?>