Od razu lepiej
Dziękuję.
Już był o ogródku, już witał się z gąską.
Dodałem parę warunków i znowu schody ;-(
Cytat(Turson @ 18.12.2013, 10:20:52 )

$q_wylosowana_osoba = "SELECT nr FROM g2013_osoby WHERE losowal='N' and nr != '".$_GET['p1']."' ORDER BY rand() LIMIT 1";
Nie bierz integerów w '' ani "", $_GET w zapytaniu bezpośrednio = sql incjection
Jak nie biorę integerów w '' ani "" to nie działa.
Ale po dodaniu warunków, jak biorę w '', to też nie działa.
Zapytanie z warunkami, które zwraca wartość w MySQL:
SELECT nr FROM g2013_osoby
WHERE nr !=3
AND para !=3
AND wylosowany =0
AND wylosowany !=3
ORDER BY rand() LIMIT 1
W php:
$q1 = $_GET['p1'];
//echo $q1;
$q_wylosowana_osoba = "
SELECT nr, imie FROM g2013_osoby
WHERE nr !=".$_q1."
and para !=".$_q1."
and wylosowany =0
and wylosowany !=".$_q1."
ORDER BY rand() LIMIT 1
";
//$totalRows_osoby = mysql_num_rows($osoby);
//$row_ososby2 = mysql_fetch_assoc($ososby2);
//$q_update = "update g2013_osoby SET wylosowany='".$r_wylosowana_osoba['nr']."' where nr='".$_q1."'";
//$wylosowana_osoba_u = mysql_query($q_update) or die(mysql_error());
echo "<div class=\"alert alert-success\">Wylosowany numer to - <span id='wynik'>".$r_wylosowana_osoba['nr']."</span> - <strong>".$r_wylosowana_osoba['imie']." !</strong> </div>";
Błędy:
*) wersja, gdy parametr jest bez '' - and para !=".$_q1."
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and para != and wylosowany =0 and wylosowany != ORDER BY rand() LIMIT 1' at line 3
*) wersja, gdy parameter jest w '' - and para !='".$_q1."' (oczywiście we wszystkich wystąpieniach).
Wylosowany numer to - - !
Czyli wartości $r_wylosowana_osoba['nr'] i $r_wylosowana_osoba['imie'] mają null.
Jak zrobię :
$q1 = $_GET['p1'];
echo $q1;
zwraca mi wartość z parametru.
W czym problem?