Ergebnis Datenbankabfrage in einer Variable speichern

  • Hallo zusammen,


    bräuchte vielleicht den letzten Anstoß um eine neue Funktion in meiner Community zu realisieren. Bei dieser Funktion handelt es sich um einen Check, wo gebrüft werden soll, ob UserB unter den Favoriten von UserA ist, oder nicht, also Ziel wäre folgendes:


    Code
    $user_is_favorite = 1


    Ich weiß, dazu müssen erstmal 2 Datenbanktabellen miteinander verglichen werden, das Thema INNER JOIN war/ist aber noch neu für mich, eine gute Erklärung fand ich bereits hier <!-- m --><a class="postlink" href="http://www.php-kurs.com/relationen-tabellen-verbinden.htm">http://www.php-kurs.com/relationen-tabe ... binden.htm</a><!-- m --> (worüber ich auch hier im Forum gelandet bin).


    Als Beispiel nehme ich mal den Inhalt des Links:


    SQL
    SELECT *
    FROM adressen
    LEFT JOIN orte ON adressen.plz = orte.plz


    In meiner Datenbank müsste man dann nur "plz" mit "userid" ersetzen...


    So, aber wie kann ich nun mit PHP daraus eine true or false Variable erzeugen, falls die userId übereinstimmt (also $user_is_favorite = 1 (true) OR $user_is_favorite = 0 (false))...


    Das habe ich irgendwie noch nicht ganz verstanden, vielleicht kann mir da jemand helfen...


    Gruß

  • Warum 2 Datenbanktabellen miteinander verbinden? Dafür erstellst du einfach eine neue Tabelle mit Namen user_favorite, dort brauchst du dann nur 3 Spalten id, current_user, user_favorite und fertig ist das.


    Ansonsten musst du mit dem SQL WHERE Statement deine Rückgabe auf eine Zeile beschränken und dann deine Variable auf true setzen wenn du Rückgabe hast, oder eben auf false wenn nicht.

  • Ich muss nicht vergleichen? Oje, dann steh ich ja noch mehr auf dem Schlauch :roll:


    Also ich habe bereits ein "add to favorites" button, welcher meine userID zusammen mit der favorisierten userID in einer Tabelle (se_app_favorite) speichert... diese Tabelle sieht wie folgt aus:


    favorite_id (Primärschlüssel) --- favorite_user_id (Benutzer der jemanden hinzufügt) --- favorite_favored_user_id (Benutzer der hinzugefügt wurde)


    [Blockierte Grafik: http://nx.vc/db_favorite.jpg]


    Ich habe im System 2 Variablen welche meine aktuelle userID {$user->user_info.user_id} hält (eingeloggt) und einer userID des Profilinhabers {$owner->user_info.user_id} welchen ich grade betrachte... nun soll halt geprüft werden, ob die aktuelle userID des Profilinhabers sich schon in meinen Favoriten befindet, nur steige ich da einfach nicht durch... :?:


    Geplant ist, dass der "add to favorites" button im Profil zu "remove from favorites" wechselt, aber dazu bräuchte ich halt diesen check, in etwa {if $user_is_favorite == TRUE}


    Weiß nicht wie ich den PHP-MySQL Code dazu erstellen muss... :|

  • PHP
    <span class="syntaxdefault"><br />  $sql_code </span><span class="syntaxkeyword">= </span><span class="syntaxstring">"<br />  SELECT `favorite_id` FROM `se_app_favorite`<br />  WHERE `favorite_user_id` = "</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_info</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">user_id </span><span class="syntaxkeyword">.</span><span class="syntaxstring">" AND `favorite_favored_user_id` = "</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$owner</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_info</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">user_id </span><span class="syntaxkeyword">.</span><span class="syntaxstring">" LIMIT 1;"</span><span class="syntaxkeyword">;<br /><br />  if(</span><span class="syntaxdefault">mysql_num_rows</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql_code</span><span class="syntaxkeyword">)))<br />    </span><span class="syntaxcomment"># Benutzer hat das besuchte Profil als Favorit eingetragen<br />    </span><span class="syntaxkeyword">print </span><span class="syntaxstring">"Favorit!"</span><span class="syntaxkeyword">;<br />  else<br />    </span><span class="syntaxcomment"># Das Gegenteil<br />    </span><span class="syntaxkeyword">print </span><span class="syntaxstring">"Kein Favorit!"</span><span class="syntaxkeyword">;<br /> </span><span class="syntaxdefault"></span>


    Es kann sein das ich deine $owner und $user Variablen falsch herum eingetragen hab, musst du ausprobieren ;)

  • Hey Basii, tausend Dank, nein, Zehntausend dank...


    "It works!" ....


    Hier nun mein finaler Code:



    Musste es noch ins Smarty Template einbinden, aber hat auch problemlos geklappt, also danke nochmal :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!