php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.10.2007, 18:12  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard mysql problem mit LIKE und AND

Hallo,
ich sitze seit einer woche an ein und demselben Script, es geht um eine Suchfunktion.

Das problem an der sache ist das mir mysql mit meinem Code Einen Fehler liefet:
Code:
Fehler
---------------------------------
SQL-Befehl:  

SELECT * 
FROM `main_news` 
WHERE `titel` LIKE '%gut%'
AND SELECT * 
FROM `main_news` 
WHERE `text` LIKE '%gut%'
LIMIT 0 , 30 

MySQL meldet:  

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM `main_news` WHERE `text` Like '%gut%' 
LIMIT 0, 30' at line 1
ich Finde einfach den fehler nicht... und auch Google hatt mir nicht viel dazu gebracht...

Ich hoffe ihr könnt mir Helfen,
Bin für jede hilfe Dankbar

MFG Kazuya

PS: Bin Mysql Neuling XD
kazuya ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.10.2007, 18:16  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ersetz das

Code:
AND SELECT *
FROM `main_news`
WHERE
mal durch

Code:
AND
du brauchst im Normalfall immer nur 1 Select, es gibt zwar ausnahmen, aber die wirst du als MySQL-Neuling nicht brauchen
cycap ist offline   Mit Zitat antworten
Alt 29.10.2007, 18:20  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 302
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

die Abfrage müsste so lauten:

Code:
SELECT * FROM `main_news` WHERE `titel` LIKE('%gut%') AND `text` LIKE('%gut%') LIMIT 0, 30
Papst ist offline   Mit Zitat antworten
Alt 29.10.2007, 18:29  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hab ich das nicht eben gesagt? ich hab für LIKE noch nie Klammern gebraucht
cycap ist offline   Mit Zitat antworten
Alt 29.10.2007, 18:41  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 302
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

ah jetzt versteh ich wie dus meinst :P
stimmt, man brauch keine klammern
Papst ist offline   Mit Zitat antworten
Alt 29.10.2007, 18:55  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

Vielen Dank für die schnellen Antworten, die Abfrage funktioniert jetzt Problemlos *freu*
VIELEN VIELEN DANK!!!!
kazuya ist offline   Mit Zitat antworten
Alt 29.10.2007, 19:53  
Benutzer
 
Registriert seit: 05.02.2006
Beiträge: 53
kazuya
Standard

Jetzt hab ich leider grade noch ein kleines Problem in meinem Script entdeckt...
Ich hoffe ihr könnt mir noch einmal Helfen wär supertoll

Ich weiss, hier ist zwar das Falsche forum, aber ich wollte nicht extra noch ein Thema Eröffen

Also zu meinem Problem, ich habe eine Suchfunktion programmiert welche, dank euch auch ziemlich gut funktioniert... also wenn ich zb "gut" eingebe klappt alles Prima, oder wenn ich zb "gut update" eingeb klappts auch prima aber wenn ich "gut " (mit leerzeichen am ende) eingeb zeigt mir das Script alle vorhandenen Datensätze aus der Datenbank

Das ist das Script von meiner Suchfunktion:
PHP-Code:
<?php
$serach 
$_POST["serach"];

include(
"includes/config.inc");
$connection mysql_connect ("$dbhost""$dbuname""$dbpass") or die ("Keine Verbindung zur Datenbank"); 
mysql_select_db ("$dbname"$connection) or die ("Keine Verbindung zur Datenbank");

echo(
"Ergebnisse in news:<hr size=\"1\">");

   
$phrase explode(" ",$serach);
   for(
$i=0;$i<count($phrase);$i++)  {
   
   
$conn "SELECT * FROM main_news WHERE titel Like '%".$phrase[$i]."%' OR ";
   
$conn .= " text Like '%".$phrase[$i]."%' ";
     }
 
$erg mysql_query($conn,$connection) or die (mysql_error());
   
     
 while(
$db mysql_fetch_array($erg)){
 if(
$db["titel"] == '' and $db["text"] == ''){
 echo(
"Keine Ergebnisse!");
 }else {
 echo(
$db['titel']."
"
.$db['text']."

"
);
 }
 }
 
 
?>
MFG Kazuya
kazuya ist offline   Mit Zitat antworten
Alt 29.10.2007, 20:32  
Erfahrener Benutzer
 
Registriert seit: 16.05.2004
Beiträge: 369
Simon9990
Standard

Hallo kazuya

Schau dir mal die trim-funktion an
__________________
Der G-Translator
Simon9990 ist offline   Mit Zitat antworten
Alt 29.10.2007, 20:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von Simon9990
Hallo kazuya

Schau dir mal die trim-funktion an
Der Tipp ist goldrichtig. Allerdings ist zu beachten das du das trim() vor dem Explode machst. Denn du würdest ohne deine schleife ja nach '%gut %' suchen was keinen einzigen Datensatz ausspucken würde wenn die Zeichenkette nicht vorkommt. Durch dein explode ohne vorher trim() zu machen suchst du nach '%gut%' UND '%%' weil das explode ja noch ein " " gefunden hat und somit ein neues array-element anlegt und deine Schleife nochmal durchläuft. Bei so einer Suche ist es klar das du alle Datensätze ausgegeben bekommst

Also trim() VOR dem explode benutzen und alles wird gut
cycap ist offline   Mit Zitat antworten
Alt 29.10.2007, 21:04  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Noch 2 Sachen:

Ich würde sagen du suchst immer nur nach dem letzten Wort, da du bei jedem Schleifen durchgang die Variable $conn wieder überschreibst.

Außerdem sieht deine IF-Bedingung in der while-schleife sehr Merkwürdig aus. Das funktionier doch nicht oder? Schau dir mal mysql_num_rows() an und mach dir IF-Bedingung vor oder nach der while-schleife

Gruß
Tim
cycap ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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
komplizierte SQL-Abfrage keinplanvonnix PHP Tipps 2008 3 23.04.2008 15:42
MySQL Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
mysql Abfrage Problem mit dem Join test022 Datenbanken 5 28.04.2007 08:07
MySQL kodierungs problem Mutatos Datenbanken 0 12.05.2006 20:02
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
[Erledigt] Problem mit Sonderzeichen PHP -&gt; MySQL -&gt; HTML PHP Tipps 2007 18 07.12.2005 15:23
[Erledigt] Problem beim verbindungsaufbau zum Mysql Server Datenbanken 9 27.10.2005 11:27
Problem mit IIS6 und PHPMyAdmin PHP Tipps 2005-2 4 18.07.2005 21:58
mysql installations problem Datenbanken 4 16.02.2005 18:46
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
mysql verknüpfte abfrage mqs PHP Tipps 2004-2 2 22.11.2004 13:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql like syntax, mysql where like syntax, mysql like befehl, mysql like, mysql select like syntax, mysql befehl like, mysql like leerzeichen, like mysql, php mysql like, http://www.php.de/datenbanken/45021-mysql-problem-mit-like-und.html, like befehl mysql, mysql select suchfunktion like, mysql like null, mysql where like, php mysql where like, mysql like or like, mysql fehler suche like, mysql: like, mysql like geht nicht, mysql where and

Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.