SQL abfrage + PHP Problem

bogys

Cadet 3rd Year
Registriert
Feb. 2007
Beiträge
50
Hi

also ich hab da ma nen kleines problem..
und zwar ich hab eine artikelsuche gebaut wo der kunde nach verschiedenen artikeln suchen kann..
z.b. kann er auswählen ob er nach dem Produkt namen suchen möchte (funktionier mit einschränkung)
oder ob er nach der artikelnummer suchen möchte..

also mein problem ist folgendes .. die suche nach dem namen klappt nur wenns ein wort ist.. tippt man 2 wörter ein z.b. (Diode 400v) kommt der fehler kein artikel gefunden ..
das problem kann ich ja mit dem explode () befehl lösen
aber
wenn ich nach einer artikelnummer such kommt keine fehlermeldung.
er zeigt den tabellenkopf aber kein ergebnis daunter an ..
wie kann das sein?
hab die sql abfrage schon direkt in phpmyadmin eingegeben da zeigt er mir den gewünschten artikel an..

hier mal mein code

Code:
<?php
echo "<form name='form' method='post' action='componentcode.php'>";

echo "Bitte geben sie ein(e)";

echo "ein.";


	if(isset($_POST['suche']))
         echo "<td><input type='Text' name='suche' value='" . $_POST['suche'] . "' size='' maxlength=''></td>";
	else
	echo "<td><input type='Text' name='suche'></td>";


echo "<input type='hidden' name='gesendet' value='1'>";
echo "<input type='Submit' name='go' value='Go-->'>";
echo "</form>";

echo "<a href='main.php'>Zurück</a>";
echo "<br>";


if ($_POST['suche']!=""){
$suche=$_POST['suche'];

$connect = mysql_connect("XXX","XXX","XXX");
mysql_select_db("semidata");
$sql= " SELECT `IDManufacturer` , `Description` , `CD Number` , `Component_code` FROM `components` WHERE `Component_Code` = '" .mysql_real_escape_string($suche) ."'";
$B=mysql_query($sql);
$ausgabe= mysql_fetch_assoc($B);
mysql_close($connect);



if ($ausgabe!=""){

echo "<table border='1'>";
echo "<tr>";
echo "<td>"."<b>"."Component Code"."</b>"."</td>";
echo "<td>"."<b>"."Description"."</b>"."</td>";
echo "<td>"."<b>"."IDManufacturer"."</b>"."</td>";
echo "<td>"."<b>"."CD Number"."</b>"."</td>";
echo "</tr>";

while($ausgabe= mysql_fetch_array($B))
{

echo "<tr>";
echo "<td>".$ausgabe['Component_code']."</td>";
echo "<td>".$ausgabe['Description']."</td>";
echo "<td>".$ausgabe['IDManufacturer']."</td>";
echo "<td>".$ausgabe['CD Number']."</td>";
echo "</tr>";
}

echo "</table>";
echo "<br>";

}else{
if (isset($_POST['gesendet']))
    echo ("Es existiert keine CD Nr. $suche.");
}

}else{
if (isset($_POST['gesendet']))
    echo ("Sie muessen auch nach einer CD Nr. suchen.");
}



php?>

hoffe mir kannw er helfen =/

THX
 
also wie ich das in meiner mittagspause so einschätzen kann würde ich folgendes vermuten - dir empfehlen:

1) Dein Versuch, zu ermitteln, ob die Datenbankabfrage ein Ergebnis liefert ist etwas "ungeschickt"

Nutze doch myslq_num_rows($B) statt "if ($ausgabe!="")" - denn du prüfst hier ein ARRAY

2) Problem, warum du nix angezeigt bekommst

Du nutzt direkt nach der Datenbankabfrage schon mysql_fetch_assoc (für die Überprüfung ob ein Ergebnis da ist) - wenn du aber GENAU ein Ergebnis bekommst, dann schlägt der nächste mysql_fetch_assoc in der WHILE-Schleife fehl - da das Array schon abgearbeitet ist!!!


Nutze also Funktion aus 1) und als mysql_fetch_assoc nach der DB-Abfrage weg - dann müsste es gehen! Zur Not http://de.php.net/mysql_fetch_assoc


-> Wenn du mal Zeit hast, beschäftige dich doch mal mit OOP, weil auf ewig gehen diese typischen phpskripte nicht gut :)
 
Zurück
Oben