# Mysql-while-schleife und erweiterte info



## Subwoover (17. Februar 2002)

Ich hätte da folgendes Problem:

Ich habe eine Datenbank 'member' und eine datei die alle Daten der Member zuerst mal schön in einer Tabelle auflistet, also Name, ICQ nummer, email Status...
paar infos

Jez will ich das so machen, dass wenn man auf den Namen klickt, dass man dann zur selben Seite mit wert kommt (member.php?show=user)die die näheren Infos zum User zeigt.

Wie mache ich das, dass ich dann allerdings GENAU die daten bekomme die auch zum user gehören?
Ich lese die ganzen Daten mit einer while schleife aus, hier mal der code


```
<?
    if ($action == showmember) {

    $connect = mysql_connect("localhost","es","es11");
    mysql_select_db("es",$connect);

 $select = "SELECT * FROM member";
 $ergebnis = mysql_query($select);
 $userzahl = mysql_num_rows($ergebnis);
    echo $userzahl . " Member";
    echo "<br>";
    echo "<br>";
    echo "<table width=100% border=1>
       <tr>
   <td width=20%><center><b>Nickname</b></center></td>
   <td width=20%><center><b>Position</b></center></td>
   <td width=20%><center><b>ICQ</b></center></td>
   <td width=20%><center><b>Status</b></center></td>
   <td widht=20%><center><b>E-Mail</b></center></td>
      </tr>";


   $result = mysql_query("SELECT nickname, position, icq, email, status FROM member ORDER BY id ASC",$connect);


   while ($myrow = mysql_fetch_object($result)) {
   echo "
   <tr>
   <td width=20%>$myrow->nickname</td>
   <td width=20%><center>$myrow->position</center></td>
   <td widht=20%><center>$myrow->icq</center></td>
   <td widht=20%><center>$myrow->status</center></td>
   <td widht=20%><center><a href=\"mailto:$myrow->email\">Mail</a></center></td>
   </tr>";
   }
echo "</table>";
   }
?>
```
Könnte mir da wer einen Code dazu liefern?


----------



## KMX-Robin (18. Februar 2002)

mm .. ganz einfach

als link gibst du dann an

member.php3?show=user&id=$myrow->id

PS: vergiss nicht ID bei der SELECT anweisung einzubauen.

wenn der besucher auf den link draufgeklickt hat, machst du folgende SELECT anweisung




```
$result = mysql_query("SELECT nickname, position, icq, email, status FROM member WHERE id='$id'",$connect);
$myrow = mysql_fetch_object($result);
   echo "
   <tr>
   <td width=20%>$myrow->nickname</td>
   <td width=20%><center>$myrow->position</center></td>
   <td widht=20%><center>$myrow->icq</center></td>
   <td widht=20%><center>$myrow->status</center></td>
   <td widht=20%><center><a href=\"mailto:$myrow->email\">Mail</a></center></td>
   </tr>";
echo "</table>";
```


----------



## Subwoover (18. Februar 2002)

Joooo das is es 
Nur wie kann im Script selbst jetzt mit einem Wert arbeiten?
Also wenn er draufklickt auf einen Usernamen gelangt er zur member.php?user=$id und ERST dann wird die abfrage aus der datenbank gestartet und gibt die werte aus?


----------



## Dunsti (18. Februar 2002)

ja, Du liest die Daten dann erst nach dem Klick auf den Link aus.

Du hast ja im Link die ID mit eingebaut, und die brauchst Du dann für die Abfrage:


```
echo "<a href=\"details.php?id=$myrow->id\">Details</a>";
```

dies wird ja in der While-Schleife erzeugt, sodaß jeder Link dann anders aussieht. im HTML-Quellcode sieht das dann z.B. so aus:

<a href="detail.php?id=1>Details</a>
<a href="detail.php?id=2>Details</a>
<a href="detail.php?id=3>Details</a>
<a href="detail.php?id=4>Details</a>
<a href="detail.php?id=5>Details</a>
<a href="detail.php?id=6>Details</a>

damit hast Du dann in der Datei details.php automatisch ne Variable $id, die den entsprechenden Wert enthält, je nachdem auf welchen Link man geklickt hat.
Und damit liest Du dann die Daten aus der DB aus: SELECT ....... WHERE ID='$id' und hast im Ergebnis dieser Abfrage nur die Daten von diesem Einen User 

war das verständlich?


Dunsti


----------



## Subwoover (18. Februar 2002)

Jo das hab ich ja soweit, ich poste mal den Code damit ihr vielleicht wisst was ich erreichen will!

das ist der link:

```
<td width=20%><a href=\"member.php?action=showdetail&user=$myrow->id\">$myrow->nickname</a></td>
```
Und das wäre der Code dazu:

```
if($user == showdetail) {
   $result2 = mysql_query("SELECT id, nickname, position, icq, email, status FROM member WHERE id='$myrow->id'",$connect);
   while ($myrow2 = mysql_fetch_object($result2)); {
   echo "<table border=1 width=100%>
   <tr>
   <td width=20%>$myrow2->nickname</td>
   <td width=20%><center>$myrow2->position</center></td>
   <td widht=20%><center>$myrow2->icq</center></td>
   <td widht=20%><center>$myrow2->status</center></td>
   <td widht=20%><center><a href=\"mailto:$myrow2->email\">Mail</a></center></td>
   </tr></table>";
   }
```

So ungefähr... sollte alles in einer File stehen oder geht das nur über 2 files?


----------



## Subwoover (18. Februar 2002)

Ähm wenns in 2 Files steht ist das auch ok, denk ichhalt mal, will nur das das funktioniert


----------



## Dunsti (18. Februar 2002)

das geht theoretisch auch in einem File, aber in zwei isses einfacher 

den Ansatz, den Du gepostet hast ist falsch !!!!!!!!

bei der Abfrage für die Details hast Du kein Ergebnis, denn das Ergebnis hast Du ja in die Variable $user geschrieben (über den Link)

Die Abfrage muss dann also heißen: .... WHERE id='$user'

Also genauer: über das <A HREF="...?user=irgendwas">.... erzeugst Du in dem aufgerufenen Script eine neue Variable $user
Deswegen muss das in der Abfrage dann auch heißen WHERE id='$user'

das was hier rot ist, muss also gleich heißen.

jetzt klar? 


Dunsti


----------

