Nickname aus anderer Spalte auslesen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
anmeldung
aussuchen
code
eintrag
formular
hilfe
jemand
limit
machen
ordern
page
re
sagen
spalte
suchen
tabelle
text
zahl
zeichenkette
-
Href="/tag/all">allo,
derzeit sucht das Script das ich benutze den Nickname im Datenbankeintrag "userdata". Ich möchte aber das er aus der Tabelle "beitraege" die Spalte "nick" benutzt um den Nickname auszulesen. Wie muss man diesen Msql-Code umändern das er das macht?
$res = $user->queryf("SELECT be.*, us.username AS username FROM ".DB_PREF."beitraege AS be LEFT JOIN ".DB_PREF."userdata AS us ON be.creator = us.id ORDER BY be.timestamp DESC LIMIT %u, %u", ($page-1)*$persite, $persite); while($row = $res->fetch_array(MYSQLI_ASSOC)) { $thistext = $text->work($row['text']); ?> <div class="newposttitle">Erstellt von: <?php echo empty($row['username']) ? 'Anonym' : $user->get_profile_link($user->get_id($row['username'])); ?> am <?php echo timeFormat($row['timestamp'], 1); ?></div>
Wie man sehen kann sucht er in der Tabelle "Userdata" den Usernamen, wenn dort keiner vorhanden ist wird einfach Anonym angezeigt. Genau das soll es machen, nur das er eben in der Tabelle "beitrage" die Spalte "nick" benutzt und somit die Tabelle "Userdata" überflüssig wird. Ich hoffe ich konnte mich verständlich ausdrücken,
Würde mich tierisch freuen wenn mir jemand hilft! Vielen dank :)
Beitrag zuletzt geändert: 28.12.2013 22:52:52 von x00r -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ersetz einfach die erste Zeile hierdurch, dann solltest du keine weiteren Änderungen machen müssen:
$res = $user->queryf("SELECT be.*, be.nick AS username FROM ".DB_PREF."beitraege AS be ORDER BY be.timestamp DESC LIMIT %u, %u", ($page-1)*$persite, $persite);
-
Hallo,
danke für die Hilfe! Leider wird kein Nickname ausgegeben, aber er erkennt bereits ob ein Nickname in der Spalte steht oder nicht. Also wenn ein eintrag existiert ist es einfach leer und wenn keiner existiert kommt "Anonym"... Woran könnte das liegen?
Vielleicht hilft es ja weiter wenn ich sage was ich vor habe bzw. gemacht habe..
Dieses Formular geht eigentlich davon aus das ein Username angezeigt wird wenn jemand registriert ist, da ich es aber mit einem Input erweitert habe soll man auch ohne eine Anmeldung sich einen Nickname aussuchen können und wenn man es leer lässt einfach Anonym. Die Anmeldung habe ich komplett verbannt, daher auch die neue Spalte in der Tabelle "beitraege". Funktioniert soweit auch alles nur das der Nickname halt nicht angezeigt wird.
Beitrag zuletzt geändert: 29.12.2013 4:55:00 von x00r -
I,Beitrag von hsg-elbmarsch fehlt noch der Left join, daher kann er dir keinen Usernamen ausgeben.
-
Sorry, übersehen! :) Änder noch:
<div class="newposttitle">Erstellt von: <?php echo empty($row['username']) ? 'Anonym' : $user->get_profile_link($user->get_id($row['username']));
in
<div class="newposttitle">Erstellt von: <?php echo empty($row['username']) ? 'Anonym' : $row['username'];
@all-in1: Soweit ich verstanden hatte, sollte die Tabelle userdata komplett rausfliegen, daher auch kein join. -
Dann wurde hoffentlich auch die Spalte nick entsprechend geändert. Denn dort waren ja vorher nur Zahlen drin, nun muss dann dort auch Text erlaubt sein. Und auch an die Länge der Zeichenkette sollte gedacht werden.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage