Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - Nachname aus datenbank bei Ausgabe Abkürzen

buerzel

Versuch macht kluch!

Teammitglied
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&" "& LEFT(nachname,1)&"." FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    return $user;
}
 

Myhar

Hat es drauf

Ich kann kein PHP aber so wie ich das sehe: In Zeile 12 in dem von dir geposteten Code erstellst du ja den $userGesamt. Da hast du Vor- und Nachname, mit einem Leerzeichen getrennt.
Jetzt kannst du doch statt dem gesamten Nachnamen hier nur den ersten Buchstaben verwenden:
https://www.php.net/manual/de/function.substr.php
Edit: Natürlich kann man es auch so machen wie ursprünglich vorgeschlagen, dass man nur den ersten Buchstaben aus der Tabelle ausliest. Aber wenn das nicht klappt gibt es eben auch Alternativen.
 

ackermaennchen

Normalo

Teammitglied
PHP Parse error: syntax error, unexpected double-quoted string "& LEFT(nachname,1)&", expecting ")" in D:\Users\Enrico\Desktop\ProDartsLeague\andy\functions\global.php on line 5
[Wed Sep 29 08:37:56 2021] [::1]:63347 [500]: GET /index.php?page=kalender&liga=1 - syntax error, unexpected double-quoted string "& LEFT(nachname,1)&", expecting ")" in D:\Users\Enrico\Desktop\ProDartsLeague\andy\functions\global.php on line 5

dann bekomme ich das
 

Myhar

Hat es drauf

Dann mach das was dir die Fehlermeldung sagt und nimm keinen double-quotet sondern einen single-quotet string? ' anstatt von ". Die beiden kann man ja nicht nach belieben mischen.
 

buerzel

Versuch macht kluch!

Teammitglied
Müssten evtl. die doppelten gegen einfache Anführungsstriche ersetzt werden. Frag mal den @Myhar ...

PS: Äääähhh - der war scheller... :D

PPS: Die Ersetzung nur innerhalb der SQL Abfrage vornehmen! Die äußeren beiden Doppelten müssen bleiben.
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
Ich kann kein PHP aber so wie ich das sehe: In Zeile 12 in dem von dir geposteten Code erstellst du ja den $userGesamt. Da hast du Vor- und Nachname, mit einem Leerzeichen getrennt.
Jetzt kannst du doch statt dem gesamten Nachnamen hier nur den ersten Buchstaben verwenden:
https://www.php.net/manual/de/function.substr.php
Edit: Natürlich kann man es auch so machen wie ursprünglich vorgeschlagen, dass man nur den ersten Buchstaben aus der Tabelle ausliest. Aber wenn das nicht klappt gibt es eben auch Alternativen.
Ja das hab ich auch versucht, aber ich weiß nicht wo ich das hinschreiben soll, hab es jetzt an mehreren Stellen probiert aber er teigt mir den kompletten namen an oder gar nix :oops:
 

buerzel

Versuch macht kluch!

Teammitglied
....
Code:
$user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.' FROM user WHERE userid = :userid");
....
 

ackermaennchen

Normalo

Teammitglied
Dann spuckt er das hier aus
PHP Fatal error: Uncaught Error: Object of class PDOStatement could not be converted to string in D:\Users\Enrico\Desktop\ProDartsLeague\andy\templates\kalender.php:124
Stack trace:
#0 D:\Users\Enrico\Desktop\ProDartsLeague\andy\index.php(45): include()
#1 {main}
thrown in D:\Users\Enrico\Desktop\ProDartsLeague\andy\templates\kalender.php on line 124

und zeigt gar nix mehr an
 

ackermaennchen

Normalo

Teammitglied
Wenn ich jetzt die alte function bestehen lasse und nur oben den "prepare" anpasse dann sagt er mir, das Vor und nAchname undefinierte arrays sind

PHP Warning: Undefined array key "vorname" in D:\Users\Enrico\Desktop\ProDartsLeague\andy\functions\global.php on line 11
[Wed Sep 29 08:53:16 2021] PHP Warning: Undefined array key "nachname" in D:\Users\Enrico\Desktop\ProDartsLeague\andy\functions\global.php on line 12
 

buerzel

Versuch macht kluch!

Teammitglied
Einen hätte ich noch:

Code:
$user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
...
$userGesamt = $user['userGesamt'];
return $userGesamt;
 

ackermaennchen

Normalo

Teammitglied
Nööö will er auch nicht... egal, ich lass es jetzt. Soll sich mein Kumpel mit RUmgschlagen :D

Aber danke für eure Hilfe, schön zu sehen, dass das Forum doch noch funktioniert und man Hilfe findet. :danke::danke::danke:
 

buerzel

Versuch macht kluch!

Teammitglied
Nööö will er auch nicht...
Nur der Vollständigkeit halber die ganze Funktion:
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    $userGesamt = $user['userGesamt'];
    return $userGesamt;
}

Problem ist: Bin auch kein PHP-ler ... :eek:
 

ackermaennchen

Normalo

Teammitglied
:happy2::happy2::happy2::happy2::happy2::happy2::happy2::happy2:

Ich hab es

PHP:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname, nachname FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    $userVorname = "";
    $userNachname = "";
    foreach ($user as $user) {
        $userVorname = $user['vorname'];
        $userNachname = substr($user['nachname'],0,1).".";
        $userGesamt = $userVorname." ".$userNachname;
    }
    return $userGesamt;
}

war der Meinung ich hab es genau so schon mal probiert und kein Ergebnis bekommen. Aber so funktioniert es
 

buerzel

Versuch macht kluch!

Teammitglied
Mir ist immer noch nicht klar, wofür foreach ist ...:rolleyes: Anscheinend produziert die Abfrage ein Array und braucht deshalb die Schleife, obwohl nur ein Datensatz ausgegeben wird. Probier doch das nochmal:
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    foreach ($user as $user) {
        $userGesamt = $user['userGesamt'];
    }
    return $userGesamt;
}
 

ackermaennchen

Normalo

Teammitglied
Mir ist immer noch nicht klar, wofür foreach ist ...:rolleyes: Anscheinend produziert die Abfrage ein Array und braucht deshalb die Schleife, obwohl nur ein Datensatz ausgegeben wird. Probier doch das nochmal:
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    foreach ($user as $user) {
        $userGesamt = $user['userGesamt'];
    }
    return $userGesamt;
}

keine Ahnung, aber das was du jetzt nochmal gebastelt hast gibt beim Namen eine 0 aus :confused:
 

buerzel

Versuch macht kluch!

Teammitglied
das was du jetzt nochmal gebastelt hast gibt beim Namen eine 0 aus :confused:
Na immerhin keine Fehlermeldung. Irgendetwas fehlt noch. Anscheinend wird der userGesamt in der Abfage noch nicht als String erkannt. Und dies:
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    $userGesamt="";
    foreach ($user as $user) {
        $userGesamt = $user['userGesamt'];
    }
    return $userGesamt;
}
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
Na immerhin keine Fehlermeldung. Irgendetwas fehlt noch. Anscheinend wird der userGesamt in der Abfage noch nicht als String erkannt. Und dies:
Code:
function getCompleteName($uid)
{
    require("./asset/mysql.php");
    $user = $mysql->prepare("SELECT vorname&' '& LEFT(nachname,1)&'.'  AS userGesamt FROM user WHERE userid = :userid");
    $user->bindParam(":userid", $uid);
    $user->execute();
    $userGesamt="";
    foreach ($user as $user) {
        $userGesamt = $user['userGesamt'];
    }
    return $userGesamt;
}
Auch wieder ne 0
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben