[MYSQL] bestimmte row raussuchen

sasuki

Grünschnabel
hi,

also ich hab gerade ein Problem mit MySQLl/PHP.

Es sieht folged aus:
Ich hab ein Userscript gebaut,
wenn ein User jetzt ein Kommentar schreibt, wird in der Kommentartabelle, nur die nummer des Users($userid) geschpeichert.
Wenn Ich die Daten für einen User rassuche, sieht das so aus:
Code:
SELECT * FROM members WHERE userid = '$userid'
da es aber auch viele Kommentare sein koennen sind das zu viele querys, und das bringt net viel.

Darum würd ich gerne alles in eine query packen,
das würden dann so aussehen:
Code:
<?php

//am anfang des scriptes
$user_result = mysql_query("SELECT * FROM members WHERE userid = '$userid'");

//vor dem kommenatr post
mysql_data_seek($user_result, $userid);
$user_daten mysql_fetch_row($user_result);

?>

Das würde nur fuktionieren, wenn die Nummer der reihe auch echt mit der Nummer des Users übereinstimmt. es ist aber net so.

gibt es eine ähnliche funktion wie mysql_data_seek, nur das hier nach einem datensatz in der tabelle gefragt wird.
So das es das gleiche resultat ergibt wie das:
Code:
WHERE userid = '$userid'


danke

sasuki
 
sind das zu viele querys, und das bringt net viel.
versteh ich nicht.... egal wieviel in der Tabelle steht, es bleibt immer 1 Query und liefert dir das gewünschte Ergebnis.... ob da nun 100 oder 1000 Datensätze in der Tabelle drinnen stehen, spielt da doch keine Rolle.

Wenn $userid nur einmal in der Tabelle vorkommt, bekommst du auch nur den entsprechenden Datensatz ....

vielleicht hab ichs aber auch missverstanden:-(
 
wenn ich für jeden user eine query macen muss,
werden es zu viele querys.

dann muss ich ja für jeden das machen:
PHP:
mysql_query("SELECT * FROM members WHERE id='$userid'");
und das ist eine ganze query, oder

ich will es aber so machen das ich eine einzige query für alle benutzer nehme,
PHP:
mysql_query("SELECT * FROM members);
in dieser Query werden alle Daten aller Benutzer geladen,
wenn man sie hinterinander durchgeht, erhält man die daten aller user:
PHP:
$query = mysql_query("SELECT * FROM members);;
while($daten = mysql_fetch_row($query))
{
var_dump($daten);
}

nun will ich aber nur eine reihe von den daten, und ich hab nur die userid, nicht die nummer der reihe.

wie kann ich nun die reihe des users herauskriegn, oder die anwählen, so das sie als nächstes bei mysql_fetch_row geladen wird.


vielen dank

sasuki
 
Also ich glaube, es versteht kaum jemand wirklich, was du willst?!

Hilft dir vielleicht GROUP BY in deinem Query weiter? Damit kannst du alle Kommentare mit gleicher User-ID gruppieren.

Zu was geben denn die User ihre Kommentare ab und was willst du wie ausgeben?!

Vielleicht könntest du deine Beschreibung des Problems mal etwas weiter fassen.
 
tut mir leid das ich es nicht Schaffe zu erklären.

Also nochmal von Neu:

Ich hab eine liste von userids, mehrere verschiedene, nicht nach reihenfolge.

wenn ich zu nun den namen zur id haben will, muss ich auf die datenbank members zugreifen.
Die datenbank enthält nur id und name.

wie ich es zurzeit habe, muss ich für jeden user eine query machen:
PHP:
mysql_query("SELECT name FROM members WHERE id = '$userid'")
$userid ist in diesem Fall die id des Users.

Da es viele abfragen werden, wird das laden langsamer.

wenn man jetzt folgende query macht:
PHP:
$query = mysql_query("SELECT * FROM members")
und das danach:
PHP:
while($daten = mysql_fetch_row($query))
{
var_dump($daten);
}
sieht man das alle daten von allen users in einer query abgefragt werden.

nun aber möchte ich nur die Reihe(row) in der id mit $userid übereinstimmt, ohne noch eine query zu machen.

ist das möglich?

wenn ja, wie?

vielen dank

sasuki
 
Zuletzt bearbeitet:
Hallo!

Also so in der Art?:

PHP:
mysql_query("SELECT name FROM members WHERE id = '$userid' OR  id = '$userid2' ")

mfg Hoizwurm
 
nein,

das hilft mir nicht weiter.
der holt ja dann nur eine Reihe (glaub ich), wo mindestens eine in den ORs aufgelisteten ids kommt

trotzdem danke

sasuki
 
Hallo!

Also irgendwie steige ich da jetzt nicht ganz durch, du willst einfach alle Namen
aus deiner Userid-Liste ausgeben oder habe ich da irgendwas noch immer nicht
ganz überzuckert?

mfg Hoizwurm

Zusatz:

So wie der obige Query geschrieben ist, gibt er dir jetzt 2 Datensätze zurück. Also nicht nur eine Datenzeile.
 
Zuletzt bearbeitet:
ich will die Namen ausgeben,
deren id ich schon hab.
Es sind mehrere IDs,
und für jede eine query zumachen dauert lange.

nun würd ich geren aus diesem result:
PHP:
$query = mysql_query("SELECT * FROM members")

mit der userid den namen herausfidnen.

kann man das machen?


danke


sasuki
 
Aha! Ich glaube es wird immer wärmer!;)

Also so in der Art:
PHP:
while ($access=mysql_fetch_array($query))
{
if ($access["id"]==$userid)
 { 				
Echo $access["user"];
 }
 }

Vielleicht sind wir jetzt auf dem richtigen Dampfer.

mfg Hoizwurm
 
Zurück