2016-04-05 4 views
0

Я пытался решить эту проблему в течение нескольких дней, но все еще не смог. Я пытаюсь сделать оператор if с помощью mysqli_num_rows($result)>0, но он не будет работать нормально. Это звучит странно. Если result>0, он будет отображать записи (которые работают нормально), иначе никакая запись не будет отображаться (которая также работает нормально), но таблица продолжает показывать. Я не знаю, почему (таблица не должна появляться, если результат возвращен пустым). Другая связанная с этим проблема заключается в том, что, когда нет записи, появляется 3 значения (нет значения изображения под изображением столбца, даты под столбцом Dat Reg, delete в столбце Terminate Membership). Любая помощь будет оценена. Я не могу получить «значение изображения», «дата» и «удалить», чтобы исчезнуть, когда результат возвращен пустым. Я пытаюсь сделать всю таблицу не отображаемой, чтобы столбцы (также не отображались, но не могли работать).если инструкция не работает должным образом относительно возвращаемого значения - PHP

userpage.php

<p align="left">A. YOUR RECORDS </p> 
<p align="left"> 
<?php 
echo "<tr><td></tr></td>"; 
if(mysqli_num_rows($result)>0){ 
echo "<table cellpadding=10 border=0 id='secondtable'>"; 
echo "<tr><td bgcolor=#698C00 class='white'>"."Membership"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Title"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Location"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Phone"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Picture"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Date Reg"."</td>". 
"<td bgcolor=#698C00 class='white'>"."Terminate Membership?"."</td></tr>"; 
if(mysqli_num_rows($result)>0){ 
while($row = $result->fetch_array(MYSQLI_ASSOC)){ 
$showdateua=$row['dateua']; 
$showdateua=date('d-m-Y',strtotime($showdateua)); 
echo "<tr><td bgcolor=#DCDCDC>".$_SESSION['Membership']=$row['Membership']. 
"</td><td bgcolor=#DCDCDC>".$_SESSION['Title']=$row['Title']. 
"</td><td bgcolor=#DCDCDC>".$_SESSION['location']=$row['location']. 
"</td><td bgcolor=#DCDCDC>".$_SESSION['adphone']=$row['adphone']. 
"</td><td bgcolor=#DCDCDC>". 
'<img src="'.$_SESSION['image1']=$row['image1'].'"alt="No image"style="width:100px;height:100px;"/>'. 
"</td><td bgcolor=#DCDCDC>".$_SESSION['dateua']=$showdateua. 
"</td><td bgcolor=#DCDCDC>"."<a href=\"rundelup.php?idadv=".$row['idadv']."\">"."Delete"."</a></td></tr>"; 
} 
} 
echo "</table>";} 
else 
{ 
if(mysqli_num_rows($result)===0) 
{echo "No records";} 
}?> 
<?php 
if(isset($_SESSION['id'])){ 
if (isset($result)){ 
if(mysqli_num_rows($result)>0){ 
echo "<table>"; 
$page=(int)$page; 
if($page>$tpages) 
{$page=$tpages;} 
if($page<1) 
{$page=1; 
} 
if($page==1){ 
echo "";} 
else 
{ 
//go to first page 
echo "<tr><td><a href='?page=1'class='button'>FIRST</a></td>"; 
} 
if($page>1) 
{ 
//go to previous page to show previous 3 items. 
echo "<td><a href='?page=".($page-1)."'class='button'><<</a></td>"; 
} 
echo "<ul class='page'>"; 
for($i=max($page-4,1);$i<=max(1,min($tpages,$page+4));$i++) 
{ 
if($i==$page){ 
echo "<td><class='current'>".$i."</td>"; 
} 
else{ 
echo "<td><a href='?page=".$i."'>".$i."</a></td>";} 
//echo "<tr><td><a href=useradacc.php?page=".$i.">".$i."</a></td></tr>"; 
} 
echo "</ul>"; 
if($page!=$tpages) 
{ 
//go to next page to show next 3 items. 
echo "<td><a href='?page=".($page+1)."'class='button'>>></a></td>"; 
} 
if($page==$tpages) 
{ 
    echo "";} 
    else{ 
//go to last page 
echo "<td><a href='?page=".($page=$tpages)."'class='button'>LAST</a></td></tr>"; 
} 
echo "</table>"; 
} 
}} 
else 
{echo "Insert record"; 
} 
?> 

включают файл (run.php)

<?php 
if(isset($conn)){ 
$id = $_SESSION['id']; 
//pagination calculation 
$reclimit=3; 
if(isset($_GET['page'])){ 
$page=$_GET['page'];} 
else 
{ 
$page=1; 
} 
$start=(($page-1)*$reclimit); 
$advert = "SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id 
WHERE u.id='".$id."'"; 
$result=$conn->query($advert); 
$total=$result->num_rows; 
$tpages=ceil($total/$reclimit); 
//pagination script ends here 
$advert = "SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id 
WHERE u.id='".$id."'ORDER BY dateua DESC LIMIT $start,$reclimit"; 
$statement = $conn->prepare($advert); 
$statement->execute(); 
$result = $statement->get_result(); } 
if ($conn->connect_error){ 
die("Connection failed: ".$conn->connect_error); 
} 
?> 
+0

Вы смесительной как процедурный и OO стиль MySQLi – Chay22

+0

Tks для ответа @ Chay22. отметил .... Я думал, что оба могут смешаться ..? hehehe ..... спасибо за отзыв .. – kmaJJ

+0

Я попробую сначала .. coz трудно различать процедурный и OO mysqli style..to мне все равно выглядит. – kmaJJ

ответ

0

Там может быть другая ошибка в вашем коде. Убедитесь, что у вас есть рабочий SQL-запрос, просмотрев его.

$advert = "SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id WHERE u.id='".$id."'ORDER BY dateua DESC LIMIT $start,$reclimit"; 
$statement = $conn->query($advert); 
var_dump($statement); 

Просмотреть результат?


Подготовленный оператор использует ? знак для динамических параметров и связать свою переменную вне SQL запроса с помощью bind_param().

$stmt= $conn->prepare("SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id WHERE u.id= ? ORDER BY dateua DESC LIMIT ?,?"); 
$stmt->bind_param("iii", $id, $start, $reclimit); 
$stmt->execute(); 
$result = $stmt->get_result(); 

Вы можете получить результат после

while($row = $result->fetch_array(MYSQLI_ASSOC)){ 
    var_dump($row); 
} 

Убедитесь, что вы знаете тип переменной, которую вы собираетесь связать

я = соответствующая переменная имеет тип целое число

д = соответствующая переменная имеет тип двойной

сек = соответствующая переменная имеет тип строки

б = соответствующая переменная является блоб и будут отправлены в пакетах

От http://php.net/manual/en/mysqli-stmt.bind-param.php

Или, используя только с помощью mysqli::query

$stmt= $conn->query("SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id WHERE u.id='".$id."'ORDER BY dateua DESC LIMIT $start,$reclimit"); 
while($row = $result->fetch_array()){ 
    var_dump($row); 
} 

изменения структуры таблицы, как этот

echo "<table cellpadding=10 border=0 id='secondtable'>"; 
echo "<tr><td bgcolor=#698C00 class='white'>" . "Membership" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Title" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Location" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Phone" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Picture" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Date Reg" . "</td>" . "<td bgcolor=#698C00 class='white'>" . "Terminate Membership?" . "</td></tr>"; 

if (mysqli_num_rows($result) > 0) { 
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) { 
    $showdateua = $row['dateua']; 
    $showdateua = date('d-m-Y', strtotime($showdateua)); 
    echo "<tr><td bgcolor=#DCDCDC>" . $_SESSION['Membership'] = $row['Membership'] . "</td><td bgcolor=#DCDCDC>" . $_SESSION['Title'] = $row['Title'] . "</td><td bgcolor=#DCDCDC>" . $_SESSION['location'] = $row['location'] . "</td><td bgcolor=#DCDCDC>" . $_SESSION['adphone'] = $row['adphone'] . "</td><td bgcolor=#DCDCDC>" . '<img src="' . $_SESSION['image1'] = $row['image1'] . '"alt="No image"style="width:100px;height:100px;"/>' . "</td><td bgcolor=#DCDCDC>" . $_SESSION['dateua'] = $showdateua . "</td><td bgcolor=#DCDCDC>" . "<a href=\"rundelup.php?idadv=" . $row['idadv'] . "\">" . "Delete" . "</a></td></tr>"; 
    } 
} else { 
    echo "No records"; 
} 
echo "</table>"; 
+0

Привет @ Chay22. Tqs есть какая-то разработка здесь. Но теперь я получил сообщение об ошибке «Позвоните в функцию-член get_result() на не-объекте ..... на строке 38 ", которая ссылается на" $ stmt-> bind_param ("iii", $ id, $ start, $ reclimit); ". – kmaJJ

+0

@kmaJJ Является ли ваша переменная' $ id' типа integer? Или ошибка может исходить из синтаксиса sql, я думаю. – Chay22

+0

Я попробовал последнюю опцию, которую я дал мне выше, никаких ошибок не было .. .. но три текста, которые я упоминал ранее «без значения изображения», «Дата» и «Удалить» все еще отображаются. Я уже очистил БД. :-( – kmaJJ

Смежные вопросы