Link & $_GET['']

  • Hey zusammen.

    Ich brauch mal wieder eure Hilfe ;)

    Ich habe eine Rangliste in der natürlich alle User aufgelistet werden. Jetzt habe ich mit Hilfe von

    <a href="index.php?site=user_profil&name=$user">$row->UserName</a>

    jedem User einen Link zugewiesen.

    Auf der Seite user_profil habe ich dann die Abfrage über $_GET['name'] gestartet.

    Das gibt mir dann den Namen der Person aus.. Klappt auch alles..

    Jetzt will ich aber noch die restlichen Daten des Users z.B. E-Mail ausgeben..

    also habe ich :

    PHP
    $abfrage = "SELECT * FROM users WHERE UserName = $user_prof";
    	$ergebnis = mysql_query($abfrage);
    	while($row = mysql_fetch_object($ergebnis))

    benutzt.. Das funktioniert aber nicht.. bekomme einen Fehler..

    "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource"

    Bitte um Hilfe xP Thanks

    Einmal editiert, zuletzt von XantypiaxD (21. März 2010 um 12:59)

  • Also mit

    PHP
    index.php?site=user_profil&name=user

    wirst du nur auf index.php gelangen.
    Und wie du das mit dem user regeln willst verteh ich nicht

    Code
    &name=user

    ?!?
    Vorab nohc ein tipp für deine Rangliste

    PHP
    $sql="SELECT UserName FROM users ORDER BY level";

    Zu user_profile.php:
    also, ich würde generell eine usercp.php oder ucp.php (wie auch hier in vBulletin)
    anlegen. Profile könntest du dann so abfragen: (Mit url vom Browser aus)

    Code
    ucp.php?action=profile&#user_id

    und nicht mit dem Namen, spart zeit beim Auslesen.
    also fürs auslesen in der Rangliste:

    PHP
    $sql="SELECT UserName,id,level FROM users ORDER BY level";echo "<h1>Rangliste</h1>";if (@$resultat=mysql_query($sql)) {   echo "<table border='0'><thead><td>Name</td><td>Level</td></thead>";   // Ich  arbeite immer mit MySQLi, kenne mich also mit den mysql_-funktionen nich  so aus   while (@$resultat=mysql_fetch_assoc($resultat)) {       // Ich mach das hier trotzdem mal mit profile.php       echo "<tr><td><a href='profile.php?".$resultat['id']."'>".$resultat['UserName']."</a></td><td>".$resultat['level']."</td></tr>\n";   }   echo "</table>";} else {   echo "<a>Datenbankverbindung fehlgeschlagen</a>";}

    Und in profile.php kannst du das dann so abfragen

    PHP
    $user=null;foreach ($_GET as $k=>$v) {    $user=$k;}if ($user!=null) {    $user=mysql_real_escape_string($user);    $sql="SELECT * FROM users WHERE id='".$user."'";    // Datenbankabfrage + Profilausgabe} else {    header ("Location: index.php");}

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    2 Mal editiert, zuletzt von Tobse (21. März 2010 um 13:06)

  • mysql_query musst du immer Prüfen, es könnte eben immer sein, dass da mal was nich klappt. In dem fall kannst du dir dann noch mysql_error ala

    PHP
    echo mysql_error();


    ausgeben lassen, da steht dann drin, was mit dem sql-Befehl falsch war.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Wie oft muss man dir noch sagen, dass du mysql_error einbauen sollst???

    PHP
    $ergebnis = mysql_query($abfrage)
       or die ("MySQL-Fehler: " . mysql_error());



    Strings gehören bei Abfragen zwischen '

    Warum soll ich nicht SELECT * schreiben?
    http://php.faq-page.net/q-sql-select.html

  • Junge, mysql_error() ist ein Elementare teil des Debuggen. Wenn man des hatl immermal vergisst, ist klar das die Dinge nicht so laufen wie man will. Tun sie ja sowieso nie, sie tun das, was man programmiert hat.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Wenn das deine Reaktion auf deine Lernresistenz ist, dann gute Nacht. Anstatt jetzt beim nächsten Problem erst mal selber richtig nachzudenken und zu debuggen, spielst du jetzt den Beleidigten. Lass' dir gesagt sein, dass du in jedem anderen Forum die gleichen Kommentare bekommen wirst, wenn du weiterhin so wenig Eigeninitiative zeigst.

  • Na, da is ja jemand der meine Meinung ausspricht xDD. Ich denke, man könnte hier schliessen. Mir geht es ehrlich auf die Nerven, wenn leute so wenig Eigeninitiative zeigen. Grad hab ich mir gedacht, "er ist ja evtl. noch in den Anfängen", aber ich denke, XantypiaxD hätte 99% Seiner Probleme hier im forum selbser lösen können....
    Was das Closen anbetrifft verweise ich nachdrücklich auf Post #9.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • wenn du deinen account gelöscht haben möchtest bitte PN an den admin.

    mache hier dann dicht, gibt ja nix mehr zu sagen

    -geschlossen-