Leere Felder im Formular unterdrücken ( mysql )

Nimm das, keine Ahnung warum du hier mit echo arbeitest ;)

PHP:
$sql .= 'SELECT * FROM goldie_s20 WHERE';
//************************ Level *************************
if($Level != '')
{
  $sql .= ' Level LIKE (" '.$Level.' %") OR ';
} else
  {
    $sql .= '';
  }
 
darf ich noch die frage stellen wie dann das ende der abfrage aussehen muß , liege ich damit richtig ?

Code:
$sql .= 'SELECT * FROM goldie_s20 WHERE';
//************************ Level *************************
if($Level != '')
{
  $sql .= ' Level LIKE (" '.$Level.' %") OR ';
} else
  {
    $sql .= '';
  } 

if($Name != '')
{
  $sql .= ' Name LIKE (" '.$Name.' %") OR ';
} else
  {
    $sql .= '';
  }

dieses wiederholen bis das Letzte such feld eingegeben ist ,
dann

Code:
$sql .= 'ORDER BY Datum DESC, Zeit DESC';
$res = mysql_query($sql);
if (mysql_errno()) echo mysql_error ();

while($row = mysql_fetch_array($res)){

    echo '<tr><td><font size="2">&nbsp;'.$row['Level'].'</font></td>
<td><a href="http://spielwelt20.monstersgame.net/index.php?ac=raubzug&sac=gegner&searchname='.$row['Name'].'" target="_blank"></font><font size="2" color="#00B0B0"><b>&nbsp;'.$row['Name'].'</b></font></a></td>
<td><a href="http://spielwelt20.monstersgame.net/index.php?ac=showuser&showuserid='.$row['IDnum'].'" target="_blank"></font><font size="2" color="#00B0B0"><b>&nbsp;'.$row['IDnum'].'</b></font></a></td>
<td><font size="2">&nbsp;'.$row['Beute'].'</font></td>
<td><font size="2">&nbsp;'.$row['erwischt'].'</font></td>
<td><font size="2">&nbsp;'.$row['Datum'].'</font></td>
<td><font size="2">&nbsp;'.$row['Zeit'].'</font></td>
</td></tr>'; 
}

Ich denke mal das stimmt so , kann da mal einer drüberfliegen ?
Ich hatte wohl mit dem echo einen gewalltigen denkfehler drin , sorry tut mir leid :-(

eine wichtige funktion fehlt allerdings noch "die Meldung wenn nichts gefunden wurde" Einfach wärs jetzt wenn einer von euch mir das liefert aber ich kann natürlich auch wie es seien sollte die suche benutzen ...........
Ich weiß garnicht wie ich euch danken soll , 2 Wochen bin ich an diesem Script schon teilweise 18 Stunden am Tag am rum Zimmern und jetzt ist endlich das ende in sicht.

Danke sag , knicks mach

LG Andy
 
Zuletzt bearbeitet:
Oh je , geht leider noch nicht, ist garnicht so einfach das ganze , jetzt steht natürlich in der abfrage bei suche immer hinten OR

Code:
  $sql .= ' Name LIKE (" '.$Name.' %") OR ';

Ich hab jetzt mal ne sau gute frage wie bekomme ich das so hin das bei der letzten eingabe das OR nicht dabei steht ? OH mann und ich dachte ich habs jetzt und habe garnicht daran gedacht.

Hilfe Heulkrampf
 
Das OR einfach vorne statt hinten:

PHP:
if($Level != '')
{
  $sql .= ' Level LIKE (" '.$Level.' %")';
} else
  {
    $sql .= '';
  } 

if($Name != '')
{
  $sql .= ' OR Name LIKE (" '.$Name.' %")';
} else
  {
    $sql .= '';
  }

Und für deine anderen Sachen hab ich grade null Zeit, ich hab viel zu tun grade ;)
 
eventuell hat ja ein anderer Zeit :-) dein gedanke kam mir auch erst , aber Laut deinem Beispiel wird das unter Garantie wieder einen Fehler geben wenn einer einen Namen sucht , dann steht das OR auch wieder da wo es nichts zu suchen hat,
Oder wird das dann ignoriert ?
 
Hmm weis nicht wie ich es erklären soll drum hier mal ein Beispiel


PHP:
$OR="";
If($Name!="")
{
     $SQL=$SQL . "name=$Name";
     $OR=" OR ";
}
if($Level!="")
{
     $SWL=$DQl . $OR . "level=$Level";
     $OR=" OR ";
}
if($SchuhGroesse!="")
{
     $SQL=$SQL . $OR . "SchuhGroesse=$SchuhGroesse";
     $OR=" OR ";
}

Dann wird nur ein OR davor gesetzt wenn auch wirklich schon davor ein anderer Wert abgefragt wurde.
 
und wo muß ich deine anweisungen unterbringen ? Anhad des beispiels :-)

Code:
if($Level != '')
{
  $sql .= ' Level LIKE (" '.$Level.' %") OR ';
} else
  {
    $sql .= '';
  } 

if($Name != '')
{
  $sql .= ' Name LIKE (" '.$Name.' %") OR ';
} else
  {
    $sql .= '';
  }

Bist du bitte so gut kannst es ja peer kopieren einfügen Bitte gaaaaanz lieb gug
oder ist das wieder ganz was neues
 
Zurück