link aus mySQL holen

Linyx

Mitglied
Guten Tag,

ich habe ein problem und zwar können angemeldete user auf meiner seite weblinks eintragen und nun möchte ich das der user im nachhinein wenn er den link eingetragen hat in der navigation auf "eingetragene webseiten" die webseiten sehen kann die er eingetragen hat wie mache ich das?

die userid des user speicher ich mit in der tabelle "weblinks" ab und die daten des user wie z.B. passwort und so sind in der tabelle "users"

ich möchte das nur der user der die weblinks eingetragen hat auch nur die weblinks sehen kann, die er eingetragen hat.

die userid ist in der tabelle weblinks im feld userid
die userdaten wie name etc. sind in der tabelle users

Hoffe mir kann jemand helfen.

LG
Linyx
 
Wenn der User angemeldet ist, dann hast du doch sicherlich auch die userid irgendwo gespeichert. Cookie, Session, etc. Wo ist dann das Problem anhand der userid die links wieder auszulesen per select?
 
Naja wenn du in der Tabelle users und in der tabelle weblinks 2 miteinander verbundene Felder hast versteh ich das Problem nicht.

Code:
SELECT * FROM weblinks WHERE w.userid = u.id FROM weblinks w, user u

so sollte das gehen wenn deine Tabelle so ca aussieht

Gruß Kai
 
Hi Linyx,

mit verbunden ist gemeint, dass sie in gewisserweise zusammengehören. Du hast ja eine Usertabelle in der die IDs der User stehen. In der anderen Tabelle (zB. links) hast du eine Spalte in der die gleichen IDs stehen. Jede ID, die in der links-Tabelle stehen, tauchen auch irgendwo in der user-Tabelle auf. Durch diese beiden Spalten sind die Tabellen (unprofessionell gesprochen) virtuell miteinander verbunden.

Zu deinem Problem: Du willst ja eine Anfrag an MySQL stellen, wie zB.
HTML:
Gib mir alle Einträge aus der Tabelle links die in der Ersteller-Spalte (zB. userid) den Wert xyz stehen haben.
Angenommen in der Variablen $ID steht die ID des Users, dessen Links du anzeigen möchtest, dann geht das mit MySQL halt so:
HTML:
SELECT * FROM links WHERE userid = $ID

Jetzt musst du nur noch wissen, wo du die ID des Users herbekommst, dessen Links du anzeigen möchtest. Wenn der User sich eingeloggt hat, dann stehen das bei dir vielleicht in der $_SESSION-Variable oder in einem $_COOKIE. Auf jeden Fall sollte die Variable die gleiche sein, mit der du den User die Links anlegen lässt. Bei Speichern eines Links trägst du ja die ID des Users ein. Also weisst du ja prinzipiell wo du sie herbekommst.

Viel Erfolg ;)
 
Hallo DeeJTwoK,

danke für die antwort =) leider komme ich nicht weiter :'(

habe jetzt folgenden code
Code:
<?php
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";

$result = dbquery("SELECT * FROM hp_weblinks WHERE weblink_user = $userdata['user_id']");
$data = dbarray($result);

echo $data['weblink_name'];
?>

wenn ich das aufrufe kommt aber leider nur eine leere seite wo hab ich denn nen fehler gemacht?

LG
Linyx
 
Was heisst "leere seite"? Ganz leer, oder siehst du den Header noch?
Kommen irgendwelche Fehlermeldungen?
Mach mal das echo so:
PHP:
echo "__".$data['weblink_name']."__";
Kommen da wenigstens die Unterstriche?

Zeig doch auch mal die Dabenbank-Anfrage mit der die Links eingetragen werden. Also sowas wie
Code:
INSERT INTO hp_weblinks (...) VALUES ...
 
Welche db Klasse benutzt du?
->
PHP:
dbquery()

// Edit: bzw. welche Funktionen
 
Zuletzt bearbeitet:
Hallo,

DeeJTwoK auch die striche werden nicht angezeigt :(

die datenbank-anfrage sieht so aus:

Code:
$result = dbquery("INSERT INTO ".$db_prefix."weblinks (weblink_user, weblink_name, weblink_description, weblink_url, weblink_cat, weblink_datestamp, weblink_count) VALUES ('$link_user', '$link_name', '$link_description', '$link_url', '".$_POST['link_category']."', '".time()."', '0')");

ich weiß echt nicht weiter verstehe nicht wieso er mir nichts anzeigt.
weiß jemand rat?

LG
Linyx
 
@Loomes: http://wiki.phpfusion-de.com/index.php/Dbquery

Also ich weiss jetzt nicht wodran es liegt, mir fällt nur auf, dass beim Eintragen die Tabelle weblinks heisst und bei deinem SELECT-Statement hp_weblinks. Vielleicht ist hp_ ja das prefix, was bei INSERT noch davor gesetzt wird. Auf jeden Fall würde ich das SELECT mal so machen:
Code:
dbquery("SELECT * FROM ".$db_prefix."weblinks WHERE weblink_user = $userdata['user_id']")

Wahrscheinlich liegt der Fehler entweder in einer der drei Dateien, die vorher eingebunden werden, oder tief in den db...-Funktionen. Ich hab kein Plan. Sorry
 
Zurück