 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
radu_paraleste
Data înscrierii: 02/Iul/2007
Mesaje: 243
Locație: Galati
|
| Trimis: Sâm Mai 31, 2008 3:50 pm Titlul subiectului: While |
|
|
Salut phpRomania. Fac un select dintr-o baza de date ca in urmatorul model:
Cod:
while($row = mysql_fetch_array($sql))
{
echo '<a href="categorie-'.str_replace(" ", "-", $row['nume_categorie']).'.html" title"'.$row['nume_categorie'].'">'.$row['nume_categorie'].'</a> | ';
}
Imi printeaza urmatoare chestie : Categorie 1 | Categorie 2 | Categorie 3 |
Problema e ca la ultima categorie si anume Categoria 3 sa nu imi mai apara | , vreau doar intre cele din mijloc si anume :
Categorie 1 | Categorie 2 | Categorie 3
O idee cum as putea face? Va multumesc anticipat! |
|
| Sus |
|
crivion
Data înscrierii: 10/Apr/2007
Mesaje: 677
Locație: Somewhere
|
| Trimis: Sâm Mai 31, 2008 4:43 pm Titlul subiectului: |
|
|
| fa un mysql_num_rows si baga un if(row=ultimu) print echo '<a href="categorie-'.str_replace(" ", "-", $row['nume_categorie']).'.html" title"'.$row['nume_categorie'].'">'.$row['nume_categorie'].'</a> '; |
|
| Sus |
|
radu_paraleste
Data înscrierii: 02/Iul/2007
Mesaje: 243
Locație: Galati
|
| Trimis: Sâm Mai 31, 2008 4:46 pm Titlul subiectului: |
|
|
aha...si care e functia sa stiu care e ultimul? ca nu vreau sa scriu manual de ex. dupa id!?
while(...)
{
if(mysql_num_rows($sql) == "Cu cine?")
{
}
}
nu prea am inteles. ms |
|
| Sus |
|
olympia
Data înscrierii: 26/Mai/2008
Mesaje: 177
|
| Trimis: Sâm Mai 31, 2008 7:08 pm Titlul subiectului: |
|
|
chiar, cum stii k ala e ultimu'? :D
io vad o rezolvare batraneasca, bagi fiecare camp intr-un array si scoti din ele cu ceva gen functia for(), utilizand mysql_num_rows ca reper ptr ultimu'. probabil ca ptr a fi sigur ar fi bine sa folosesti select distinct si array_unique, pentru a scoate eventualele inregistrari goale. |
|
| Sus |
|
radu_paraleste
Data înscrierii: 02/Iul/2007
Mesaje: 243
Locație: Galati
|
| Trimis: Sâm Mai 31, 2008 7:11 pm Titlul subiectului: |
|
|
| am rezolvat mai simplu cu select --- limit 7 si dupa aia 8,7 :P thanks oricum |
|
| Sus |
|
l33t
Data înscrierii: 10/Mai/2008
Mesaje: 23
|
| Trimis: Dum Iun 01, 2008 9:55 am Titlul subiectului: |
|
|
Citat: fa un mysql_num_rows si baga un if(row=ultimu) print echo '<a href="categorie-'.str_replace(" ", "-", $row['nume_categorie']).'.html" title"'.$row['nume_categorie'].'">'.$row['nume_categorie'].'</a> ';
Citat: aha...si care e functia sa stiu care e ultimul? ca nu vreau sa scriu manual de ex. dupa id!?
mysql_num_rows iti returneaza numarul de randuri rezultate din queryul tau
Citat: while(...)
{
if(mysql_num_rows($sql) == "Cu cine?")
"Cu cine?" va fi un contor care se incrementeaza |
|
| Sus |
|
olympia
Data înscrierii: 26/Mai/2008
Mesaje: 177
|
| Trimis: Dum Iun 01, 2008 2:36 pm Titlul subiectului: |
|
|
la modul iin care pune radu problema, e usor de rezolvat, uite, folosind limit in interogare (cu putina imaginatie se poate automatiza complet, fara sa mai stai sa bagi limit \d,\d, ci limit $x,$y);
io m-am lovit la un moment dat de o problema similara, lucrand cu un camp 'date'. pentru ca formatul era ales najpa, nu mergea select distinct ptr ca aveam de fapt 'datetime', iar mie imi trebuiau toate inregistrarile pe zile. deci count sau mysql_num_rows nu-mi erau de mare folos.
sfaturile pe care le primeam era fie sa renunt la ora (prin tranformarea in 'date' a campului), fie exista o interogare complexa in sql, dar care nu se aplica la unix style, fie sa mai fac un camp doar cu 'date' :roll:
asa am taiat mai intai ora, dupa care am ajuns la array_unique. ptr ca nu studiasem indeajuns manualul :D , am constatat cu stupoare ca array_unique imi returna in count acelasi numar imens de inregistrari :D
cu ocazia asta am constatat ca array_unique iti pune in ordine valorile unice, dar ti le lasa la sfarsit ca 0 pe toate celelalte care au fost dublate!
asta a fost insa partea simpla, pe care am rezolvat-o cu:
Cod:
$sirarray2=array_unique($sirarray1);
foreach($sirarray2 as $gol) {
if($gol == "0") {
unset($sirarray2[$gol]);
}
}
$sirarray = array_values($sirarray2);
$n=count($sirarray);
cam asta am vrut sa spun in postarea precedenta. |
|
| Sus |
|
212
Data înscrierii: 12/Mai/2008
Mesaje: 13
|
| Trimis: Dum Iun 01, 2008 6:29 pm Titlul subiectului: |
|
|
poti folosi si substr ...
Cod:
$msg = '';
while($row = mysql_fetch_array($sql)) {
$msg .= '<a href="categorie-'.str_replace(" ", "-", $row['nume_categorie']).'.html" title"'.$row['nume_categorie'].'">'.$row['nume_categorie'].'</a> | ';
}
echo substr($msg, 0, -3);
212 |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|