[Mysql] Genau Suche

danielmueller

Gesperrt
Ich möcht möglichst schnell überprüfen ob in einer Spalte ein bestimmtes Wort genauso (Case sensitive) vorhanden ist . Und abhängig davon dann den Wert einer Varible (in meinem Fall $section). Ich war nicht faul und habe mir schonmal was ausprobiert:
und zwar:
PHP:
if(isset($_GET['Section'])){
  $sql="SELECT tabelle.Section FROM tabelle";
  $query=mysql_query($sql);
  
 for($key=1; $werte=mysql_fetch_assoc($query); $key++){
    if($werte["Section"]==$_GET["Section"]){
      $section=$_GET["Section"];
      $gueltig=1;
      break;
    }
  }
  if(!$gueltig){
    $section="Home";
  }    
}
Dieses Beispiel funktionier jedoch wird es mit der Zeit bestimmt etws unperformant wenn die Tabelle mehrer 100 Zeilen hat. Da im schlechtesten Fall ja auch die Schleife in php etwa ein paar 100 mal durchlaufen werden müsste. Gibt es nicht irgendeine andere Möglichkeit das zu lösen vielleicht das man irgendwie mysql suchen lassen lässt und in abhängigkeit davon ob was gefunden wurde oder nicht halt true oder false zurrückgegeben wird?
mysql_querry () geht ja in diesem Fall nicht da nur false zurrückgegeben wird wenn man die sql Anfrage irgendwie falsch formuliert hat. Ich habe es jedenfalls mal damit probiert und es hat nicht geklappt:

PHP:
if(isset($_GET['Section'])){
  $section=$_GET['Section'];
  $sql="SELECT tw.Section FROM tw WHERE tw.Section = '$Section'";
  $query=mysql_query($sql);
  if (!$query) $section="Home";
}
$query gibt in diesem Fall die Ressource Id zurrück auch wenn $section gar nicht existiert.
 
Ich verstehe dein Problem jetzt noch nicht so ganz.
Mit
PHP:
$sql="SELECT tabelle.Section FROM tabelle WHERE Section=".$_GET["Section"];
bekommst Du doch nur genau dann einen Wert zurück, wenn genau das in der Spalte steht.
Wenn das Wort nur unter anderem in dem Eintrag vorkommen soll, versuch's sonst doch mal mit dem SQL-Befehl "LIKE".
Da kannst du auch mit Wildcards, etc arbeiten.
 
$query gibt in diesem Fall die Ressource Id zurrück auch wenn $section gar nicht existiert.

Jepp das ist völlig normal
Auch wenn nix gefunden wurde ist das ein Ergebnis darum die Ressource ID

Überprüfen kannst du z.B mit

if (mysql_num_rows() > 0) {
echo "was gefunden";
}
 
Zurück