Ankündigung

Einklappen
Keine Ankündigung bisher.

arraymap mit db Verbindung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • arraymap mit db Verbindung

    Hallo,
    nach endlosen hin und her versuchen suche ich euren Rat

    PHP-Code:

    function setzeneu($value$db) { 
        
    $value['Zeit'] = date('d-m-Y H:i:s'$value['Zeit']); 
        
    $value['userid'] = getUserNickfromID($db,$value['userid']);
        return 
    $value


    $dataResult array_map('setzeneu'$results$db); 
    Wenn ich die Sache mit der Datenbank Übergabe und der user id lasse dann funktioniert es, das Problem ist das ich es nicht schaffe die $db Variable korrekt zu übergeben, es kommen Fehler wie in der version hier :
    Warning: Missing argument 2 for setzeneu()`

    Viele varianten versucht aber es führt nicht zu dem Ergebnis das ich haben will!

    Hat jemand ein Blick dafür was ich hier falsch mache?

  • #2
    Wat solln dit

    getUserNickfromID wird sicher eine SQL-Anweisung ausführen, oder?!
    SQL-Anweisungen in Iterationen sind meist ein Zeichen für schlechtes Code- bzw. Datenbankdesign!

    Was willst Du erreichen, was soll genau passieren und was passiert stattdessen?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Hallo,
      getUserNickfromID ist eine in eine funktion gepackte sql Anweisung !
      Der Sinn ist das es viele Einträge sind die in einer anderen Spalte gelesen wird und in einer Tabelle mit Seiten Navigation angezeigt wird!

      Da die Einträge vom User sind ist auch die User ID in der Tabelle vom Ersteller eingetragen.
      Diese id will ich bei der Abfrage mit dem dazugehörigen Nick austauschen, damit leichter erkannt werden kann von wem es genau ist.

      Da die Tabelle ziemlich groß ist will ich die nicht noch mit dem nick des jeweiligen Eintragen weil ich sie so klein wie möglich halten muss, Zahlen sind einfach kleiner.

      zu der Sache mit schlechtes Code- bzw. Datenbankdesign muss ich sagen das ich nicht gerade Profi bin und nicht gerade schnell voran komme wie ich mit großen Datenbanken umgehe mit +10 Millionen Einträgen. Was ich aber überall Lese ist das ich mit Zahlen schneller bin als mit strings und das hat sich nach einem test auch gezeigt das bei der masse ein großer unterschied ist wenn ich Zahlen nehme. Deswegen dieser Umweg.

      Ist es nicht möglich die Verbindung mitzuschicken?
      würde gerne das einschreiben des nicks umgehen

      Kommentar


      • #4
        Allse schön und gut, aber ohne Deine Funktion genau zu kennen, stelle ich die Frage in den Raum, ob das nicht über eine gesamte Query sinnvoller ist.
        Den Recordset bzw. die Resource kannst Du dann iterieren.

        Deine Query wird etwas tun, ähnlich diesem:
        Code:
        SELECT
            spalte1,
            spalte2,
            ...
            spalteN
        FROM
            tabelle
        WHERE
            UserId = X
        ...wofür das X aus Deinem $value['userid'] kommt.
        Damit erhältst Du im besten Falle einen Datensatz, wenn ich Deine Geschichte richtig verstanden habe.

        Lass doch die UserId einfach weg, so daß Du die Resultate gesammelt von allen Usern oder für Deinen Fall für eine ausgewählte Menge an Usern bekommst:
        PHP-Code:
        $aUserIds array_map(
                    function( 
        $container ) { return $container['userid']; },
                    
        $results
                
        );

        $sUserIds implode','$aUserIds );

        $sqlQuery =<<<EOSQL
        SELECT
            spalte1,
            spalte2
        FROM
            tabelle
        WHERE
            UserId IN (
                
        {$sUserIds}
            )
        EOSQL; 
        ...die Query schickst Du an den DB-Server und hast alle Einträge der ausgewählten User, kannst iterieren und Deine HTML-Tabelle aufbauen.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar

        Lädt...
        X