0

私は PDO と PHP を初めて使用します。テーブルから取得された情報からどのように変数を定義するのか疑問に思っています。

私は次のものを持っています:

$UID = $_GET['id'];
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND ID = '$UID'");
$sth->execute();

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
    echo $row['First_Name'] . ' ' . $row['Surname'] . "\n";
    echo '<img src="http://maps.google.com/maps/api/staticmap?center=' . $row["Location_Postcode_Last_Seen"] . '&amp;zoom=1
    4&amp;size=200x200&amp;maptype=roadmap&amp;markers=color:ORANGE|label:A|' . $row["Location_Postcode_Last_Seen"] . '&amp;sensor=true">';
    echo $row["Nicknames"];
    echo $row["Age"];

}

追加しようとすると:

var $name = echo $row['First_Name'] . ' ' . $row['Surname'];

私のwhileループ内では、コードはブラウザに何も出力しません。

4

2 に答える 2

2

変数の割り当ては次のように行われます。

$name = $row['First_Name'] . ' ' . $row['Surname']; //defining variable $name

それをエコー/表示するには、次のように行う必要があります。

echo $name; //this will display whatever is in $name

echo質問に示されているように、while ループは正常に動作し、それらのキーが結果セットに存在する限り、実行しようとしているすべてのものが表示されます。

 while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
echo $row['First_Name'] . ' ' . $row['Surname'] . "\n";
echo '<img src="http://maps.google.com/maps/api/staticmap?center=' . $row["Location_Postcode_Last_Seen"] . '&amp;zoom=1
4&amp;size=200x200&amp;maptype=roadmap&amp;markers=color:ORANGE|label:A|' . $row["Location_Postcode_Last_Seen"] . '&amp;sensor=true">';
echo $row["Nicknames"];
echo $row["Age"];
}

編集:(コメントによる)

//assign all that you want to display to a variable $map, the equality operator '=' is used for assigning the right-hand side value to the left-hand side variable.
$map = '<img src="maps.google.com/maps/api/staticmap?center=' . $row["Location_Postcode_Last_Seen"] . '&amp;zoom=1 4&amp;size=200x200&amp;maptype=roadmap&amp;markers=color:ORANGE|label:A|' . $row["Location_Postcode_Last_Seen"] . '&amp;sensor=true">'; 

echo $map; //display $map

注:複数回アクセスする必要がある場合にのみ、変数を割り当てる必要があります。

于 2012-10-22T20:05:57.567 に答える
0

varクラスで変数を宣言するためにのみ使用されるキーワードです。それはおそらくそれが問題になるでしょう:

echo $row['First_Name'] . ' ' . $row['Surname'];

また

$name = $row['First_Name'] . ' ' . $row['Surname'];
echo $name;

さらに、preprared statmemnts を間違って使用しています。それらの利点の一部は、パラメーターが自動的に引用されることです。次のいずれかのようになります。

// position placeholders
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND ID = ?");
$sth->execute(array($UID));

また

// names palceholders
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND ID = :uid");
$sth->execute(array(':uid' => $UID));
于 2012-10-22T20:08:22.040 に答える