2013-12-20 8 views
0

У меня есть небольшая проблема, у меня есть эта база данных с этими полями.Получить случайные данные из базы данных,

Table Data{ 
     ID 
     Name, 
     Text, 
     Location, 
     imagepath 
     } 

И теперь я хочу, чтобы эти значения были введены в мои поля, данные - это просто строки.

<h3><!-- Text value here --> - <!-- Name value here --></h3> 
<p> <!-- Location data here --> </p> 

И у меня также есть этот сценарий JS, который генерирует новые поля, когда пользователь нажимает кнопку.

$('.Next').click(function(e) { 
e.preventDefault(); 
Slide.appendSlide('<!-- HTML DATA HERE NAME AND TEXT & LOCATION VALUES -->')}); 

Я хочу, чтобы ID был случайным, и я не хочу, чтобы пользователь дважды получал те же данные. Как я должен подойти к этому? Я пробовал getdata.php, но не смог.

Большое вам спасибо! Счастливых праздников!

+0

_ «Я не хочу, чтобы пользователь дважды получал одинаковые данные» _ - У вас есть бесконечное количество данных в вашей базе данных? – nnnnnn

+0

Что такое «getdata.php»? – mtanti

+0

Нет, конечно, нет, но если пользователь нажмет рядом, я не хочу, чтобы у пользователя была возможность снова получить тот же текст. Благодарю. – user2563959

ответ

0

Честно говоря, я бы посмотрел на сохранение идентификатора страницы до $ _session ['visited']. Затем каждый раз, когда они просматривают страницу, присоединяют ее к переменной сеанса, разделенной запятой

$ _session ['visited']. = ",". $ Page_id;

Тогда ваш sql будет.

EDITED

Ok так что давайте сделать безопасной

$ph = explode(",",$_session['visited']); 
foreach($ph as $check){ 
    if (!isnumeric($check)){ 
    echo "Not numeric, possible injection"; 
    exit; 
    } 
} 
$parmcount=count($ph); 
$inclause=implode(',',array_fill(0,$parmcount,'?')) 
$sql='SELECT * FROM table WHERE ID NOT IN (%s)'; 
$preparesql=sprintf($sql,$inclause); 
$st=$db->prepare($preparesql); 
$st->execute($parms); 

Или альтернатива просто сохранить все этот код рассматривается иды как массив, в первую очередь.

+0

А, ок! Я понимаю, но должен ли я хранить идентификатор в сеансе также? И сравнить ID со следующим ID или что-то подобное? – user2563959

+1

Ну, идентификатор страницы, на который ссылается, является идентификатором строки в таблице. Поэтому каждый раз, когда они переходят к новому идентификатору, он добавляется к $ _session ['visited'], который затем исключается из вашего счета sql – Rob

+0

О, я думаю, я понимаю, что вы имеете в виду. Итак, когда они переходят к следующему тексту, id сохраняет в sesson? – user2563959

Смежные вопросы