Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 17.04.2002 Skąd: Wrocław Ostrzeżenie: (0%)
|
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] |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 152 Pomógł: 0 Dołączył: 15.05.2002 Skąd: Łódź Ostrzeżenie: (0%)
|
hmm
ja zrobil bym to tak: [php:1:547f9e8aad]<?php $literki = 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"); $tmp = array(); foreach($literki as $litera) { $r = mysql_query("select nazwisko from tabela where nazwisko like '".$litera."%'"); $tmp2 = array(); while($t = mysql_fetch_assoc($r)) { array_push($tmp2,array("nazwisko" =>$t[nazwisko])); } array_push($tmp,array("litera" => $litera,"nazwiska" => $tmp2)); } $smarty -> assign('dane',$tmp); ?>[/php:1:547f9e8aad] a w tpl'u Kod {section name=l loop=$dane}
<b>{$dane[l].litera}<br> {section name=t $dane[l].nazwiska} {$dane[l].nazwiska[t].nazwisko}<br> {sectionelse} Brak nazwisk na {$dane[l].litera}<br> {/section} <hr> {/section} zapodaj do tego swoje style obslugi bazy danej i powinno dzialac, chyba ze gdzies jakas literowke zrobilem ... |
|
|
|
sivyer [php + mysql + smarty] Problem z LIKE 9.09.2003, 14:54:04
adwol Re: [php + mysql + smarty] Problem z LIKE 9.09.2003, 16:22:14
sivyer Zapomnialem dopisac. Obiekt $db to obiekt zwracany... 9.09.2003, 18:27:41
jono <?php
$res = $db->get_results("SELECT player... 9.09.2003, 20:43:11
sivyer @ hary
Dziekuje, pomoglo
Wina byla nie po stronie... 9.09.2003, 21:28:48
FiDO Ja bym powiedzial ze tylko po Twojej ;P
Mam jeszc... 10.09.2003, 09:10:52
DeyV ja tego typu rzeczy trobię tak:
W podanym przyklad... 10.09.2003, 09:44:10 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 20:30 |