SELECT - WHERE mit Variable

Das verstehe ich zwar nicht, aber um überall die ' zu bekommen musst du
PHP:
WHERE id IN ('$appFriendsSqlIdList')
kombinieren mit
PHP:
$appFriendsSqlIdList = implode("','", array_map('mysql_escape_string', $app_friends))
Dann sollten überall Hochkammas drum sein.
 
Danke für deinen Tip, genu so dacht ich tst.

Ich versteh gar nix mehr....

wenn ich nun
PHP:
echo $sql;

krieg ich
Code:
SELECT * FROM highscores_Memory WHERE id IN ('1530469148','100000538953504') ORDER BY score ASC

in meinen Textfeldern wird aber wieder nur UNDEFINIED ausgegeben.

Wenn ich eben
Code:
'1530469148','100000538953504'
manuel eingebe ind
PHP:
WHERE id IN ('$appFriendsSqlIdList')

dann gehts...... :confused:
 
Ich glaube das Problem tritt generell auf wenn ich Daten über die Facebook API nutze.

Ich hab mich jetzt mal ans Developer Forum von Facebook gewandt. Mal schauen was da raus kommt!
 
Hiho,

also ich gebe denn Weg denn ich vorher gegangen bin auf, da ich eben glaube das mit der Facebook API und meinen Scripten irgendwas nicht hinhaut bzw. sich irgendwas zwickt.

Deshalb würd ichs gern anders probieren. Kurze Beschreibung:

Ich bekomme eine Variable:
PHP:
$tmp2

Diese implode ich:
PHP:
$app_friends = implode( ",", array_map('mysql_escape_string', $tmp2));

Dann mit folgedem ab in meine Datenbank:
PHP:
$sql = "UPDATE $db_table SET friends='$app_friends' WHERE id='$u_id'"; 
$result = mysql_query($sql)or die("SQL error: ".mysql_error());

$u_id ist die USERID des aktuell eingeloggten Users.

Fogendes Format bzw. Werte sind nun in der SPALTE friends gespeichert:
PHP:
1530469148,100000538953504

Diese Werte sind ja nun in einem Feld gespeichert und zwar in der Zeile des aktuell eingeloggten Users.

Um die Werte in friends weiterverarbeiten zu können wollte ich folgendes machen:
PHP:
//ID´s auslesen aus eigener DB WHERE eingeloggter USER ($u_id) aus der Spalte 'friends'
$sql1 = "SELECT friends 
        FROM {$db_table}
        WHERE id = $u_id";
$result1 = mysql_query($sql1)or die("SQL error: ".mysql_error());

WIe siehts denn nun generell mit dieser ABfrage aus? Was bekomme ich denn geliefert? EIn Array?

Mit diesem Code
PHP:
if($row = mysql_fetch_object($result1))
{
echo "<pre>\n";
print_r($row);
echo "</pre>\n";	
}

bekomme ich:
PHP:
stdClass Object
(
    [friends] => 1530469148,100000538953504
)

wenn ich nun statt mysql_fetch_object - mysql_fetch_array mache kriege ich:
PHP:
Array
(
    [0] => 1530469148,100000538953504
    [friends] => 1530469148,100000538953504
)

Ichmöchte Schlußendlich eigentlich SELECT * ausgeben WHERE (diese id´s 1530469148,100000538953504)

Ich hab das auch schon mit
PHP:
$result = implode(",", $array);
usw. probiert aber dat t irgendwie nich. Zumindest ist mir nicht ganz klar wohin damit.

Was mir komisch vorkommt ist auch das mit in dem ARRAY zwei Dingsens ausgeben werden, einmal 0 und friends oder würde das so passen bis dahin?
 
Hi!

Wenn Du den Inhalt der Spalte "friends" danach sowieso wieder in einer Query verwenden willst, könntest Du ihn doch gleich mit
PHP:
$row = mysql_fetch_assoc($result1);
$app_friends_ids = $row["friends"];
einlesen und dann einfach in die nächste Query einsetzen.

Wobei ich Dir vorschlagen würde, die Freundschaften über eine gesonderte Zuordnungstabelle zu speichern.
 
Zuletzt bearbeitet:
Zurück