2016-04-05 13 views
0

Ich habe versucht, dieses Problem für mehrere Tage zu lösen, aber immer noch nicht in der Lage. Ich versuche, eine if-Anweisung mit mysqli_num_rows($result)>0 zu tun, aber es wird nicht richtig funktionieren. Das klingt komisch. Wenn , wird es Datensätze anzeigen (was funktioniert gut), sonst würde kein Datensatz angezeigt werden (was auch gut funktioniert), aber die Tabelle wird weiterhin angezeigt. Ich weiß nicht warum (die Tabelle soll nicht erscheinen, wenn das Ergebnis leer ist). Das andere damit verbundene Problem ist, wenn kein Datensatz erscheint, erscheint 3 Wert (kein Bildwert unter Spaltenbild, Datum unter Spalte Dat Reg, löschen unter Spalte Mitgliedschaft beenden). Jede Hilfe würde geschätzt werden. Ich kann nicht "kein Bildwert", "Datum" und "löschen" erhalten, um fortzufahren, wenn das Ergebnis leer zurückkehrt. Ich versuche, die gesamte Tabelle nicht erscheinen zu lassen, damit die Spalten (würde auch nicht angezeigt werden, aber es kann nicht funktionieren).If-Anweisung funktioniert nicht richtig in Bezug auf Rückgabewert 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"; 
} 
?> 

Include-Datei (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

Sie mischen und verfahrens OO Mysqli Stil – Chay22

+0

TKS für die Antwort @ Chay22 verwenden. notiert .... Ich dachte, beide könnten mischen ..? hehehe ..... danke für den Tipp .. – kmaJJ

+0

Ich werde es zuerst versuchen .. coz es ist schwer zu unterscheiden zwischen prozeduralen und OO mysqli style..to mir sieht es gleich aus. – kmaJJ

Antwort

0

Dort auf Ihren Code erneut ein Fehler sein kann. Stellen Sie sicher, dass Sie eine funktionierende SQL-Abfrage erhalten haben, indem Sie die Ausgabe der SQL-Abfrage betrachten.

$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); 

Ein Ergebnis anzeigen?


vorbereitete Anweisung verwendet ? Zeichen für dynamische Parameter und binden ihre Variable außerhalb SQL-Abfrage mit 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(); 

Sie können das Ergebnis holen danach

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

Stellen Sie sicher wissen, dass Sie Variablentyp Sie

i = entsprechende Variable zu binden, gehen geben Ganzzahl

d = entsprechende Variable hat

s = entsprechenden variablen Typ double Typ String

b = entsprechende Variable hat, ist ein Blob und wird

in Paketen gesendet werden,

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

Oder mit nur 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); 
} 

Ändern der Tabellenstruktur wie diese

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

Hallo @ Chay22. Tqs. Es gibt einige Entwicklung hier. Aber jetzt habe ich einen Fehler "Call to a member Funktion get_result() auf einem Nicht-Objekt ..... in Zeile 38 "was sich auf" $ stmt-> bind_param ("iii", $ id, $ start, $ reclimit) bezieht; ". – kmaJJ

+0

@kmaJJ Ist Ihre Variable' $ id' Typ der Ganzzahl? Oder der Fehler kann von SQL-Syntax kommen, denke ich. – Chay22

+0

Ich versuchte die neueste Option, die Sie mir oben gab keine Fehler aufgefordert .. ..aber die drei Text, die ich zuvor erwähnte "kein Bild Wert", "date" und "delete" erscheint immer noch. Ich habe die DB bereits gelöscht. :-( – kmaJJ

Verwandte Themen