Mysql suche reagiert nicht

escape

Mitglied
Hallo Community vielleicht könnt ihr mir helfen?
Meine Suchfunktion gibt kein Ergebnis aus.

Php + MySql + Smarty

Das Skript
PHP:
<?php
    error_reporting(E_ALL);
    include ("checkuser.php");
    include ("config/config.php");
    require 'libs/Smarty.class.php';

    $db_link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

    $tpl = new smarty;
            
    $sql= "SELECT inhalt, titel
            FROM lexikon 
            WHERE 
			inhalt LIKE ('%".$_POST['suchbegriff']."%') 
			OR
            titel LIKE ('%".$_POST['suchbegriff']."%') ";
    

	$my = mysql_Query($sql) or die ( mysql_error() );
    	
    	 while ( $row = mysql_fetch_assoc($my) ) {
    	 	$sucheexy[]=$row;
    	 } 	


$smarty = new Smarty;

$tpl->assign('sucheexy',$sucheexy);

$smarty->display('suche_ausgabe.tpl');

?>

Die Ausgabe
PHP:
{foreach from=$sucheexy item=sususu}
{$sususu.inhalt} {$sususu.titel}
{/foreach}

Die Ausgabe von $my
Resource id #6

Die Ausgabe von $sql
SELECT inhalt, titel FROM lexikon WHERE inhalt LIKE ('%Vray%') OR titel LIKE ('%Vray%')
Das Vray resultiert aus dem was ich in dem Suchformular eingegeben habe.

Der selbe Mysql Befehl direkt in phpmyadmin führt zu einen korrekten Ergebnis.

Ich bin ratlos!

Danke MfG Thomas
 
Hi!
mysql_fetch_assoc() liefert dir ein Array, bei welchem die Feldnamen deiner Tabelle auch die Schlüssel des Arrays sind. Da du "$sucheexy" aber nur deine Variable "$row" zuweist wird das so nichts.
Du musst also ausdrücklich einen Spaltenname als Schlüssel angeben um einen Wert zu erhalten
PHP:
$row["spaltenname"]
oder du benutzt eine Funktion wie zum Beispiel "var_export".

Gruß,
TwoFaze
 
Meiner Meinung nach müßte so etwas rauskomen.

PHP:
Array
(
    [0] => Array
        (
            [Vorname] => Hans
            [Nachname] => Mayer
            
        )
Teste doch einmal nach der Whileschleife so,
PHP:
      echo "<pre>";
print_r($sucheexy);
echo "</pre>";
was den bei Dir als Ausgabe kommt.
 
Es fehlt die Zuweisung:

PHP:
$ret = mysql_query("SELECT 
						inhalt, 
						titel
            		FROM 
            			lexikon 
            		WHERE 
            			inhalt LIKE '%".$_POST['suchbegriff']."%' 
            		OR
            			titel LIKE '%".$_POST['suchbegriff']."%'") 
            		or die ( mysql_error() );
    
while ( $row = mysql_fetch_assoc($ret) ) {
	$sucheinhalt[] = $row['inhalt'];
	$suchetitel[]  = $row['titel'];
}

// Testarray
print_r($sucheinhalt);
print_r($suchetitel);
 
Das php Skript ist fehlerfrei :)

Der Fehler lag im TPL bereich


$tpl->assign('sucheexy',$sucheexy); <--- FALSCH


$smarty->assign('sucheexy',$sucheexy); <--- RICHTIG :)


Trotzdem danke :)
 
Zurück