Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

While
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
radu_paraleste



Data înscrierii: 02/Iul/2007
Mesaje: 219
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: 620
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: 219
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: 86

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: 219
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: 86

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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community