Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Verschiedene Datensatzrückgaben aus verschiedenen tabellen a

susannchen / 8 Antworten / Baumansicht Nickles

Hallo.

Ich habe verschiedene mysql Abfragen.

diese sehen so aus:

$a[$d]=mysql_query("select * from tabelle where text like \'%$searchstring%\'",$db);

so. nun laufen diese alle in einer for schleife und einer while schleife ab:


for($i=0;$i {


while($zeile=mysql_fetch_object($a[$i]))
{
...



also : die schleife durchläuft die abfrage mit mehreren Results also die schleife fragt mehrere
tabellen ab.

so. nun kann es sein, dass eine tabelle ein ergebnis enthält, eine andere nicht.

nun will ich eine ausgabe machen, wie "Keine Ergebnisse" wenn KEINE Tabelle
einen Datensatz zurückgibt, aber nur dann, nicht wenn 10 keinen zurückgeben und
1 tabelle einen zurückgibt, also wirklich nur, wenn nichts gefunden wird.

So habe ich das versucht:


$alle_ergebnisse = mysql_num_rows($a[$i]);
if($alle_ergebnisse == 0) ....


aber das geht nicht, dann gibt er für die 10 tabellen aus, er habe kein Ergebnis gefunden, und die 1 findet dann ein ergebnis

ich hoffe jemand versteht das problem

bei Antwort benachrichtigen
xafford susannchen „Verschiedene Datensatzrückgaben aus verschiedenen tabellen a“
Optionen

warum fragst du nicht einfach alle tabellen auf einmal ab?
SELECT tabelle1.feld1,tabelle2.feld2,...,tabelleN.feldN FROM tabelle1,tabelle2,...,tabelleN where tabelle1.feld1 ...
dann dürfte es auch mit dem count(*) funktionieren, falls ich dein problem richtig verstanden habe.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander susannchen „Verschiedene Datensatzrückgaben aus verschiedenen tabellen a“
Optionen
$ergebnisse = 0;
for($i=0;$i [...]
{
  $ergebnisse += mysql_num_rows($a[$i]);
  [...]
  while($zeile=mysql_fetch_object($a[$i]))
  [...]
{
if($ergebnisse=0){echo 'Nix gefunden';}


Gibt es eigentlich einen Besonderen Grund alle 10 Suchergebnisse gleichzeitig im Speicher zu halten? Kann man doch auch wunderbar nacheinander abarbieten...

CU Borlander
bei Antwort benachrichtigen
susannchen Nachtrag zu: „Verschiedene Datensatzrückgaben aus verschiedenen tabellen a“
Optionen

denke borlanders vorschlag sollte gehen, aber ich kann nicht alle tabellen gleichzeitig abfrage, weil die andere spalten haben, sie sind nicht alle gleich aufgebaut, brauche ich in der Tabelle1 die spalte TEXT, so brauche ich in Tabelle2 die Spalte Gerburtsdatum also daher muss ich alle abfragen

bei Antwort benachrichtigen
xafford susannchen „denke borlanders vorschlag sollte gehen, aber ich kann nicht alle tabellen...“
Optionen

ob die spalten gleich sind oder nicht ist absolut egal bei einer abfrage über mehrere tabellen, du kannst auch aus einer tabelle 20 spaltenwerte und aus einer anderen nur einen holen, das interessiert nicht.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
susannchen xafford „ob die spalten gleich sind oder nicht ist absolut egal bei einer abfrage über...“
Optionen

wie macht man das denn genau? gibs im netz ein beispiel? möglichst ein vollständiges wie zb. eine vollständige select abfrage?

bei Antwort benachrichtigen
Borlander susannchen „wie macht man das denn genau? gibs im netz ein beispiel? möglichst ein...“
Optionen

Was genau willst Du denn abfragen?

Wenn ich das richtig verstanden habe sind deine Abfragen alle ähnlich? Dann zieh die Abfrage selbst mit in die Schleife, dann benötigst Du nur eine Ergebnisvariable und nicht gleich ein ganzes Array.

gibs im netz ein beispiel? möglichst ein vollständiges wie zb. eine vollständige select abfrage?
Such mal nach SQL im Netz, oder lade Dir die Refrenz von der MySQL-Seite.


CU Borlander

bei Antwort benachrichtigen
Heinz_Malcher susannchen „Verschiedene Datensatzrückgaben aus verschiedenen tabellen a“
Optionen

Hallo, ich habe eine ähnliche Suchabfrage auf einer meiner seiten allerdings nur mit 2 Tabellen, bei borlanders vorschlag zeigt er dann allerdings folgendes an:

wird in Tabelle 1 ein ergebnis gefunden zu einem suchstring, so zeigt er das ergebnis an, doch für tabelle 2 wo zum beispiel kein ergebnis gefunden wird, zeigt er dann an, dass kein ergebnis gefunden wird. ich weiss nicht ob er das so wollte, aber er schrieb

nun will ich eine ausgabe machen, wie "Keine Ergebnisse" wenn KEINE Tabelle
einen Datensatz zurückgibt, aber nur dann, nicht wenn 10 keinen zurückgeben und
1 tabelle einen zurückgibt, also wirklich nur, wenn nichts gefunden wird.


ich würde das auch so wie X lösen aber ich weiss nicht was noch dranhängt an deinem suchstring. allerdings würde mich das Beispiel von Borlander interessieren

bei Antwort benachrichtigen
Heinz_Malcher susannchen „Verschiedene Datensatzrückgaben aus verschiedenen tabellen a“
Optionen

Ok, habe etwas rumprobiert um mal das Beispiel von Borlander zu kapieren. Es war der Fehler meiner Benennung der Variablen.

ich habe das also oder würde das demnach also so machen:

ergebnisse = 0;
for($i=0;$i [...]
{
$ergebnisse_ += mysql_num_rows($a[$i]);
[...]
while($zeile=mysql_fetch_object($a[$i]))
[...]
{
if(ergebnisse_=0){echo 'Nix gefunden';}


Wenn ich $ergebnisse ausgebe, nicht $ergebnisse_ bekomme ich jedesmal 0 als Resultat.

bei Antwort benachrichtigen