Witam,
Mam problem z ponizszym zapytaniem SQL, pierwsze 3 rekordy dla litery A wyciaga poprawnie, pozniej sie sypie z bledem o nieprawidlowym argumencie dla foreach(). Chce, aby kolejno z bazy zawodnikow wyciagane byly nazwiska zaczynajace sie na kolejne litery alfabetu i wyswietlane:
A
nazwiska na A
B
nazwiska na B
itd.
[php:1:efb69e4755]
<?php
$ar = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","W","X","Y","Z");
for( $i=0; $i<count($ar); $i++ ) {
$pl_loop[] = $i;
$smarty->assign("pl_loop", $pl_loop );
$smarty->assign("pl_litera", $ar );
$litera = $ar[$i];
$res = $db->get_results("SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname LIKE '".$litera."%'");
foreach( $res as $player ) {
$pl_id[] = $player->playerID;
$pl[] = "$player->pl_surname, $player->pl_name";
}
// ...
?>
[/php:1:efb69e4755]
Probowalem:
[sql:1:efb69e4755]
SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname LIKE '".$litera."%'
SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname LIKE '$litera%'
SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname REGEXP '^$litera.*'
SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname REGEXP '^$litera.*'
SELECT playerID,pl_name,pl_surname FROM pro_players WHERE pl_surname REGEXP '^".$litera.".*'[/sql:1:efb69e4755]