TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 07.06.2004, 21:47   #1
TP-Senior
 
Registriert seit: Aug 2002
Ort: Göttingen
M@tzM@N macht alles soweit korrekt

[PHP + MySQL] Anfrage wird nicht bearbeitet


Hi!

Ich versuche schon den ganzen Tag folgendes Problem zu lösen!
Ich habe 2 Tabellen die ich getrennt von einander dursuchen möchte, allerdings wird die zweite überhaupt nicht durchgesucht.

In dem Suchformular wird der Suchbegriff und der zu druchsuchende Bereich ausgewählt!
Naja schaut es euch an:

PHP-Code:
<?php
if ( $suche == "" )
{
 
$titel .= "Suchformular";

 
$display .= "Gib bitte den gewünschten Begriff ein nachdem unsere interne Suchmaschine suchen soll!";

 
$display .= "<form name=\"search\" method=\"post\" action=\"$PHP_SELF?module=search\">\n";
 
$display .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"content\">\n";
 
$display .= "<tr>\n";
 
$display .= "<td width=\"120\"><b>Suchbegriff:</b></td>\n";
 
$display .= " <td><input name=\"suche\" type=\"text\" id=\"suche\" size=\"50\" maxlength=\"255\"></td>\n";
 
$display .= "</tr>\n";
 
$display .= "<tr>\n";
 
$display .= "<td><b>Bereich:</b></td>\n";
 
$display .= "<td><select name=\"bereich\" id=\"bereich\">\n";
 
$display .= "<option value=\"goals\">Replays</option>\n";
 
$display .= "<option value=\"news\">Neuigkeiten</option>\n";
 
$display .= "</select></td>\n";
 
$display .= "</tr>\n";
 
$display .= "<tr>\n";
 
$display .= "<td>&nbsp;</td>\n";
 
$display .= "<td><input type=\"submit\" name=\"Submit\" value=\"Suchen!\"></td>\n";
 
$display .= "</tr>\n";
 
$display .= "</table>\n";
 
$display .= "</form>\n";
}
elseif ( ! 
$suche == "" )
{
 
$user_ip $REMOTE_ADDR;
 
$date time();

 
$anfrage "INSERT INTO suchanfragen ( suchwort, bereich, datum, ip ) VALUES ( '$suche', '$bereich', '$date', '$user_ip' )";
 
mysql_query $anfrage$link );

 if ( 
$bereich == "goals" )
 {
  
$titel "Suche (Bereich: Replays)";

  
$display .= "Hier findest du alle Ergebnisse zu deiner Suche!<br>\n";
  
$display .= "Dein Suchbegriff lautet: <b>$suche</b><br><br>\n";

  
$ergebnis mysql_query "SELECT * FROM replays WHERE beschreibung LIKE '$suche' OR mannschaft LIKE '$suche' OR gegner LIKE '$suche' OR scorer LIKE '$suche' ORDER BY id" );
  
$anzahl mysql_num_rows $ergebnis );

  if ( 
$anzahl == )
  {
   
$display .= "Es wurden keine Einträge zu dem Begriff <b>$suche</b> gefunden!";
  }
  else 
  {  
   
$display .= "Folgende Einträge wurden gefunden:<br>\n";
   
   while ( 
$data mysql_fetch_array $ergebnis ) )
   {
    
$display .= "<b><img src=\"images/plus.gif\" width=\"9\" height=\"25\">&nbsp;<a href=\"#\" onclick=\"swap_content('$data[id]'); return false;\">$data[mannschaft] vs. $data[gegner]</a></b><br>\n";
    
$display .= "<span id=\"$data[id]\" style=\"display: none\"><b>Einsender:</b> $data[einsender]<br>\n<b>Schwierigkeitsgrad</b>: $data[stars] Stern(e)<br>\n<b>Torschütze:</b> $data[scorer]<br>\n$data[beschreibung]<br><br><div align=\"center\"><img src=\"images/leiste.gif\" width=\"299\" height=\"4\"></div><br></span>";
   }
  }
 }
 elseif ( 
$bereich == "news" )
 {
  
$titel "Suche (Bereich: Neuigkeiten)";

  
$display .= "Hier findest du alle Ergebnisse zu deiner Suche!<br>\n";
  
$display .= "Dein Suchbegriff lautet: <b>$suche</b><br><br>\n";

  
$ergebnis mysql_query "SELECT * FROM news WHERE text LIKE '$suche'" );
  
$anzahl 1;//mysql_num_rows ( $ergebnis );

  
if ( $anzahl == )
  {
   
$display .= "Es wurden keine Einträge zu dem Begriff <b>$suche</b> gefunden!";
  }
  else 
  {  
   
$display .= "Folgende Einträge wurden gefunden:<br>\n";
    
   while ( 
$data mysql_fetch_array $ergebnis ) )
   {
    
$display .= "<b><img src=\"images/plus.gif\" width=\"9\" height=\"25\">&nbsp;<a href=\"#\" onclick=\"swap_content('$data[id]'); return false;\">$data[headline]</a></b><br>\n";
    
$display .= "<span id=\"$data[id]\" style=\"display: none\"><b>Einsender:</b> $data[autor_id]<br>\n$data[text]<br><br><div align=\"center\"><img src=\"images/leiste.gif\" width=\"299\" height=\"4\"></div><br></span>";
   }
  }
 }

 
$display .= "<div align=\"center\"><h3><a href=\"$PHP_SELF?module=search\">Zurück zum Suchformular</a></h3></div>";
}
?>
Um es im Original zu sehen besucht: http://www.pes3-goals.de/index.php?module=search
__________________

mfg
M@tzM@N

www.pes3-goals.de
M@tzM@N ist offline   Mit Zitat antworten


Alt 08.06.2004, 01:10   #2
TP-Supporter
 
Registriert seit: Apr 2001
Judi macht alles soweit korrekt
Hi

vom Abfragescript scheint es schon zu stimmen.

Allerdings sendet mysql bei der Suche durch 1. Tabelle folgende Meldung

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web104/html/modules/search.php on line 44

Was mir weiterhin auffällt, Du setzt keine wildcards(%), welche den like-operater veranlassen, auch Zeichenketten am Anfang, innerhalb bzw. am Ende eines Strings zu erkennen und die entsprechenden Datensätze auszugeben, was ja Sinn machen würde.

bsp. ...where feld like '%$suche%'

Ich gehe jetzt mal davon aus, dass die Variablen $suche und $bereich den Feldern zugewiesen worden sind bzw. entspr. Einstellungen.
__________________
Liebe Grüße, die Judi!
Judi ist offline   Mit Zitat antworten
Alt 08.06.2004, 01:52   #3
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Genau in den Wildcards liegt das Problem.
Um ein Suchergebnis zu haben, muss alles im Suchfeld so eingegeben werden, wie es in der Tabellenspalte "text" steht.
Steht also in der Spalte der Text "Hier sind die News"
wird es nur gefunden wenn man nach "Hier sind die News" sucht, nicht aber wenn man nach "Hier" sucht.
Ergo muss ich den ganzen Text bei der Suche eingeben, den ich suche...recht unsinnig
Wenn Du in der ersten Tabelle was gefunden hast, hast Du bestimmt exakt was aus den Spalten beschreibung, mannschaft, gegner oder scorer als Suchbegriff eingegeben.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 08.06.2004, 18:05   #4
TP-Senior
 
Registriert seit: Aug 2002
Ort: Göttingen
M@tzM@N macht alles soweit korrekt
Ja jetzt funktioniert es!
Liegt an den Wildcards!
Danke schön!

Aber eine Frage habe ich noch, um die gefunden Daten hervorzuheben arbeite ich mit eregi_replace

PHP-Code:
    $ersatz "<b><font color=\"red\" style=\"background-color: yellow;\">$suche</font></b>";

    
$headline eregi_replace $suche$ersatz$data[headline] );
    
$text eregi_replace $suche$ersatz$data[text] ); 
Allerdings wird das Wort jetzt genau so geschrieben wie der Benutzer es eingegeben hat (egal ob groß oder klein)!
Wie kann ich jetzt einstellen das das Wort nicht verändert wird?
__________________

mfg
M@tzM@N

www.pes3-goals.de
M@tzM@N ist offline   Mit Zitat antworten
Alt 08.06.2004, 20:58   #5
TP-Supporter
 
Registriert seit: Apr 2001
Judi macht alles soweit korrekt
Du musst für die Ersatzkette einen anderen Operatoren nehmen z.B. \\0 erlaubt den Zugriff auf den gesamten Ausdruck.

Ferner kannst Du sowas auch schön in eine Funktion schreiben, dann kannst Du diese für beliebig viele Ausgaben nutzen.

PHP-Code:
  function umwandeln($msg){
  global 
$suche;
  
$msg eregi_replace($suche,"<b><font color=\"red\" style=\"background-color: yellow;\">\\0</font></b>",$msg);
  return 
$msg;

z.b. umwandeln($data[text]) oder umwandeln($data[headline])

Es kann Dir allerdings passieren, dass, je nach Suchbegriff plötzlich html-Code replaced wird. Hier sollte man mit einem RegExp vorbeugen

bsp.

PHP-Code:
$msg preg_replace("'(?!<.*?)$suche(?![^<>]*?>)'si","<span class=\"suchtext\">\\0</span>"$msg); 
__________________
Liebe Grüße, die Judi!

Geändert von Judi (08.06.2004 um 21:03 Uhr).
Judi ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[PHP + MySQL] Anfrage wird nicht bearbeitet [PHP + MySQL] Anfrage wird nicht bearbeitet
« Hash werte | Probleme beim inlcuden von Scripten in ein Template mittels vlib oder smarty »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Site wird von google nicht gefunden Thomas Suchmaschinen 15 01.03.2004 10:36
Wird meine Kriegsdienstverweigerung anerkannt? Levis Einfach so ... 52 26.11.2003 23:43
Alte Festplatte wird nicht erkannt... mrTIN Betriebssysteme 6 20.10.2003 23:22
Website wird nicht korrekt dargestellt priamos Webdesign & Co. 8 21.02.2003 20:40
CSS wird nicht übernommen oliveramberg Dreamweaver 4 04.02.2003 09:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:10 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67