mysqli_result类的错误对象无法转换为int

时间:2017-12-07 14:22:04

标签: php mysqli

对整个论坛的问候,我的代码有问题,你能不能帮我理解我错在哪里?

注意:无法将类mysqli_result的对象转换为C:\ xampp \ htdocs \ gos \ page \ appuntamenti_privati.phpon第46行中的int

注意:无法将类mysqli_result的对象转换为C:\ xampp \ htdocs \ gos \ page \ appuntamenti_privati.phpon第47行中的int



<?php
require_once('function/date_day.php');

$where='';

// Creo una variabile dove imposto il numero di record 
// da mostrare in ogni pagina
$x_pag = 5;

// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = isset($_GET['pag']) ? $_GET['pag'] : 1;

// Controllo se $pag è valorizzato e se è numerico
// ...in caso contrario gli assegno valore 1
if (!$pag || !is_numeric($pag)) $pag = 1; 

$sq1 = "SELECT id_app FROM appuntamenti WHERE stato_pren = 'ATTESA ACCETTAZIONE'";
$rs1 = $mysqli->query($sq1);
$all_rows = mysqli_num_rows($rs1);


// Tramite una semplice operazione matematica definisco il numero totale di pagine
$all_pages = ceil($all_rows / $x_pag);

// Calcolo da quale record iniziare
$first = ($pag - 1) * $x_pag;

$tipo = trim(strip_tags(stripslashes($_GET['tipo'])));

if ($tipo == "tutti") {
    $where = "WHERE data = '$oggi'";

}elseif ($tipo == "accettazione") {
    $where = "WHERE stato_pren = 'ATTESA ACCETTAZIONE' AND tipo_pren = 'CLIENTE PRIVATO'";

}elseif ($tipo == "lavorazione") {
    $where = "WHERE stato_pren = 'LAVORAZIONE' AND tipo_pren = 'CLIENTE PRIVATO'";

}elseif ($tipo == "terminato") {
    $where = "WHERE stato_pren = 'TERMINATO' AND tipo_pren = 'CLIENTE PRIVATO'";
}

$sq2 = "SELECT * FROM appuntamenti $where ORDER BY data ASC LIMIT $first, $x_pag";
$rs2 = $mysqli->query($sq2);

if ($rs2 != 0){
for($x = 0; $x < $rs2; $x++){

echo "<br />";

echo "<div class ='container-appuntamento'>";
echo "<table class='table table-striped table-responsive'>";
echo "<tr>";
echo "<th>Data</th>";
echo "<th>Ora</th>";
echo "<th>Cliente</th>";
echo "<th>Telefono</th>";
echo "<th>Veicolo</th>";
echo "<th>Tipo Pren.</th>";
echo "<th>Tipo Lav.</th>";
echo "<th>Stato Pren.</th>";
echo "<th>Note</th>";
echo "<th>Aggiorna</th>";
echo "<th>Stampa</th>";
echo "</tr>";



while ($row = $rs2->fetch_assoc()) {
$id_app = mysqli_real_escape_string($mysqli, $row['id_app']);
$cliente = mysqli_real_escape_string($mysqli, $row['cliente']);
$data = mysqli_real_escape_string($mysqli, $row['data']);
$ora = mysqli_real_escape_string($mysqli, $row['ora']);
$gestore = mysqli_real_escape_string($mysqli, $row['gestore']);
$veicolo = mysqli_real_escape_string($mysqli, $row['veicolo']);
$stato_pren = mysqli_real_escape_string($mysqli, $row['stato_pren']);
$tipo_pren = mysqli_real_escape_string($mysqli, $row['tipo_pren']);
$tipo_lavorazione = mysqli_real_escape_string($mysqli, $row['tipo_lavorazione']);
$telefono = mysqli_real_escape_string($mysqli, $row['telefono']);
$note = mysqli_real_escape_string($mysqli, $row['note']);

/* FILTRI e CONVERSIONI SULLE VARIABILI POST */
$cliente = trim(strip_tags(stripslashes($cliente)));
$veicolo = trim(strip_tags(stripslashes($veicolo)));
$note = trim(strip_tags(stripslashes($note)));
$data = strtotime($data);
$data = date('d/m/Y', $data);
/* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */



if ($stato_pren == 'ATTESA ACCETTAZIONE') { $classe = 'table-danger-rs'; }
if ($stato_pren == 'LAVORAZIONE') { $classe = 'table-warning-rs'; }
if ($stato_pren == 'TERMINATO') { $classe = 'table-success-rs'; }

if ($tipo_lavorazione == 'MECCANICA') { $lav = 'table-warning-mec'; }
if ($tipo_lavorazione == 'CARROZZERIA') { $lav = 'table-warning-car'; }
if ($tipo_lavorazione == 'PNEUMATICI') { $lav = 'table-warning-pneus'; }
?>

<tr>
<td><b><?php echo data_it($data); ?></b></td>
<td><?php echo $ora; ?></td>
<td><?php echo $cliente; ?></td>
<td><?php echo $telefono; ?></td>
<td><?php echo $veicolo; ?></td>
<td><?php echo $tipo_pren; ?></td>
<td class='<?= $lav; ?>'><? echo $tipo_lavorazione; ?></td>
<td class='<?= $classe; ?>'><? echo $stato_pren; ?></td>
<td><?php echo $note; ?></td>
<td><?php echo "<a href='index.php?page=aggiorna_appuntamento&id_app=$id_app'><img src='images/edit.png' alt=''></a>"; ?></td>
<td><?php echo "<a href='pdf_appuntamento.php?id_app=$id_app' target='_blank'><img src='images/print.png' alt='Stampa'></a>"; ?></td>
</tr>

<?php
}
echo "</table>";
echo "</div>";

echo "<div class='pagination form'>";
if ($all_pages > 1){
  if ($pag > 1){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=appuntamenti_privati&tipo=$tipo&pag=" . ($pag - 1) . "\">";
    echo "&lt;&lt; Precedente</a>&nbsp;&nbsp;&nbsp;";
  } 
  if ($all_pages > $pag){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?page=appuntamenti_privati&tipo=$tipo&pag=" . ($pag + 1) . "\">";
    echo "Successiva &gt;&gt;</a>";
  } 
 }
echo "</div>";
}

}else{

echo "<div class = 'container-ricerca-nulla'>";
echo "<div class ='row'><p class='btn btn-danger center-button'>Non ci sono appuntamenti in Accettazione.</p></div>";
echo "</div>";

}
?>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

违规行46和47是

if ($rs2 != 0){
for($x = 0; $x < $rs2; $x++){

您将结果集视为整数

根据 http://php.net/manual/en/mysqli.query.php

您的$rs2对象是mysqli_result个对象。因此,您可以找出结果中的行数,例如

$sq2 = "SELECT * FROM appuntamenti $where ORDER BY data ASC LIMIT $first, $x_pag";
$rs2 = $mysqli->query($sq2);

if ($rs2->num_rows > 0){

但不清楚为什么你需要使用x作为

的for循环
while ($row = $rs2->fetch_assoc())

循环应该遍历结果中的行。见fetch_assoc