2012-04-13 15 views
0

Ok, ich habe diesen CodeMysql Abfrage und php echo

<?php 
include_once ('database_connection.php'); 

if(isset($_GET['keyword'])){ 
$keyword = trim($_GET['keyword']) ; 
$keyword = mysqli_real_escape_string($dbc, $keyword); 

$query = "select name,title,description,link,type from items where name like '%$keyword%' or title like '%$keyword%' or description like '%$keyword%' or link like  '%$keyword%' or type like '%$keyword%'"; 

//echo $query; 
$result = mysqli_query($dbc,$query); 
if($result){ 
if(mysqli_affected_rows($dbc)!=0){ 
$ff = ""; 
     while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ 
    $ff .= "<div id='itemdiv2' class='gradient'>"; 
    $ff .= "<div id='imgc'>".'<img src="Images/media/'.$row['name'].'" />'."<br/>"; 
$ff .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='poplight'>View full<a/></div>"; 
$ff .= "<div id='pdiva'>"."<p id='ittitle'>".$row['title']."</p>"; 
    $ff .= "<p id='itdes'>".$row['description']."</p>"; 
    $ff .= "<a href='".$row['link']."'>".$row['link']."</a>"; 
    $ff .= "</div>"."</div>"; 
    echo $ff; 
} 
}else { 
    echo 'No Results for :"'.$_GET['keyword'].'"'; 
} 

} 
}else { 
echo 'Parameter Missing'; 
} 




?> 

und ich habe diesen Fehler "Notice: Undefined index: id in C: \ xampp \ htdocs \ madeinusa \ search.php auf der Leitung 20" und das ist die Zeile 20: "$ ff. =" Voll anzeigen ";" und ich weiß nicht, was das Problem scheint. Ich denke, es gibt tatsächlich ein Problem mit der Abfrage oder bei der Anzeige des Datensatzes. hoffe jemand könnte helfen, ich bin offen für irgendwelche Vorschläge und Empfehlungen. Danke im Voraus.

+0

Ich schlage vor, Sie einige tun. Zuerst "debuggen" Sie sich selbst. Vor allem "var_export" den Inhalt von $ Zeile irgendwo - eine Protokolldatei, oder wenn alles andere fehlschlägt, der Browser. In diesem Fall enthält das assoziative Array $ Zeile kein Element Bei Schlüssel '' id '', was genau die Fehlermeldung Ihnen sagt. – tdammers

+0

Beachten Sie auch, dass Ihr Code XSS-Schwachstellen aufweist. Ich muss nur ein Bild zu der Datenbank hinzufügen, die ein Skript-Tag enthält in seiner Definition. – tdammers

Antwort

2

Das ist nur ein Hinweis ist, dass Sie den id Wert von $row Array fehlen, da Sie nicht enthalten waren in Ihrer select

versuchen Sie id in Auswahlabfrage:

$query = "select id,name,title,description,link,type from items where name like '%$keyword%' or title like '%$keyword%' or description like '%$keyword%' or link like  '%$keyword%' or type like '%$keyword%'"; 

und es sollte Arbeit

+0

Danke, das funktioniert. –

+0

ja, danke. Ich vermisse etwas um meinen Code und das ist was genau ich vergesse –

0

Sie sollten die id Spalte in Ihrer Select-Abfrage

erwähnen
+0

ja, danke. Ich vermisse etwas um meinen Code und das ist was genau ich vergesse –

0

Ich denke, Ihr Fehler ist hier:

$row['id'] 

Sie wählen nicht id in Ihrer Abfrage. Ändern Sie ihn auf:

select id,name,title,description,link,type from items where ... 
+0

ja, danke. Ich vermisse etwas um meinen Code und das ist was genau ich vergesse. –