Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[MySQL 3.23.X] select ergebniss feld x nur einmal [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[MySQL 3.23.X] select ergebniss feld x nur einmal


 
jonnov
29-02-2004, 23:01 
 
Hallo

$beitrag = mysql_query("SELECT * from beitrag LEFT JOIN beitrag_text ON beitrag.bei_id = beitrag_text.bei_id WHERE $like_suche ORDER BY beitrag.order_nr_kat, beitrag.order_nr_the") or die("Fehler - Stichwortsuche Beitrag" . mysql_error());

Durchsucht zwei Tabellen nach einem Stichwort. Wenn ein Wort in einem Beitrag zwei mal vorkommt, wird der Beitrag auch zwei mal ausgegeben.

Wie kann ich definieren, dass in der Ausgabe das Feld bei_id aus der Tabelle 'beitrag' immer nur einmal vorkommt. DISTINCT hilft nicht.

DANKE!
Gruß Jonnov

 
mrhappiness
29-02-2004, 23:02 
 
* liefert dir alle spalten aller tabellen

probier mal beitrag.*
damit solltest du alle spalten der tabelle beitrag bekommen

und noch besser wäre es meiner meinung nach, wenn du die namen der felder explizit angeben würdest

 
jonnov
29-02-2004, 23:17 
 
Hallo,

danke für deine Antwort.
Mit beitrag.* oder aber beitrag.bei_id, beitrag.titel, beitrag.toppic erhalte ich trotzdem Datensätze aus der Tabelle beitrag doppelt ausgegeben.

Hast Du noch eine Idee???

Danke und GRuß
Jonnov

 
mrhappiness
29-02-2004, 23:21 
 
das distinct hast du verwendet?

poste mal die abfrage, so wie sie jetzt aussieht

 
jonnov
29-02-2004, 23:59 
 
$dbfelder = "beitrag.titel,beitrag.toppic,beitrag.titel_k,toppic_k,beitrag.inhalt,beitrag_text.bei_txt_titel,beit rag_text.bei_txt_inhalt";

$like_suche = "concat($dbfelder) LIKE '$suche_1'";


$beitrag = mysql_query("SELECT distinct beitrag.* from beitrag LEFT JOIN beitrag_text ON beitrag.bei_id = beitrag_text.bei_id WHERE $like_suche ORDER BY beitrag.order_nr_kat, beitrag.order_nr_the") or die("Fehler - Stichwortsuche Beitrag<p>" . mysql_error());

durch distinct und beitrag.* bekomme ich keine doppelten mehr
Danke!

Leider wederen nicht alle DBFelder durchsucht.
$dbfelder sollte doch funktionieren. ODER ?

jonnov

 
mrhappiness
01-03-2004, 12:15 
 
hast du dir die abfrage so wie sie der mysql-server bekommt mal ausgeben lassen?

wie sieht die aus?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:08 Uhr.