Повторение результатов PHP / MySQL - PullRequest
0 голосов
/ 14 ноября 2011

У меня проблема с PHP. Я хочу, чтобы следующий код показывал только один результат из базы данных - тот, который соответствует полю siteID. Но вместо этого он возвращает все результаты из базы данных.

<?php                    
$siteID = $_GET['siteID']; 
include 'connect.php';                      
$sql = "SELECT id, siteID,name,description,skills,extra1,extra2 FROM folio";   
$queryresult = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($queryresult)) {
$id = $row['id'];
$siteID = $row['siteID'];
$name = $row['name'];
$description = $row['description'];
$skills = $row['skills'];
$extra1 = $row['extra1'];
$extra2 = $row['extra2'];

echo "<div id='title'>       
<h5>$name</h5>
</div>

<div id='holder'>
    <div id='blogleft'>
</div>

<div id='blogright'>
    <p>Archive / Calendar<br /><br /> Add some sort of calendar or archive here; for previous blog posts.</p>
</div>
</div>";
}
?>

URL заканчивается на "/work.php?siteID=pluggedin"

Ответы [ 4 ]

1 голос
/ 14 ноября 2011

Вам нужно предложение WHERE.

$sql = "SELECT id, siteID, name, description, skills, extra1, extra2 FROM folio WHERE siteID='".$siteID."'";

Хотя я не рекомендую это вообще.Посмотрите SQL-инъекцию, если вы не знаете, о чем я говорю.Вместо этого я бы сделал оператор PDO.

Примерно так:

$sql = "SELECT * FROM folio WHERE siteID=:siteid";
$sth = $dbh->prepare($sql);
$sth->bindParam(':siteid', $siteid, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetchAll();
print_r($result);

Вы также можете сделать:

$result = $sth->fetch(PDO::FETCH_ASSOC);

, который даст вам массив с именами столбцованалогично mysql_fetch_assoc, при этом будет извлечена следующая строка, снова похожая на mysql_fetch_assoc.

0 голосов
/ 14 ноября 2011

Вы не использовали условие where в вашем запросе.

Попробуйте это

   $sql = "SELECT id, siteID, name, description, skills, extra1, extra2 FROM folio WHERE siteID='".(int)$_GET['siteID']."' ";
0 голосов
/ 14 ноября 2011
$sql = "SELECT 
            id, 
            siteID, 
            name, 
            description, 
            skills, 
            extra1, 
            extra2 
        FROM folio 
        where siteID = $siteID"; 

Вы просто пропустите предложение where.

0 голосов
/ 14 ноября 2011

Это потому, что вы выбираете все свои записи в своей таблице ... добавьте предложение LIMIT к вашему запросу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...