Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: problema foreach

  1. #1

    problema foreach

    ciao a tutti
    sto avendo un problema con un foreach questo è lo script:
    Codice PHP:
    $QueryCat=@mysql_query("Select Categoria From archivio") or die (mysql_error());
    $rectotale=mysql_num_rows($QueryCat);
    $ciclo=0;
    while(
    $RecCat=mysql_fetch_array($QueryCat)){
    $ciclo++;
    $categorie.=$RecCat["Categoria"];
    if(
    $ciclo<$rectotale$categorie.="#";
    }
    $categoria=explode("#",$categorie);
    $categoria=sort(array_unique($categoria));
    foreach(
    $categoria as $linkcategoria){
    ... 
    mi da questo errore:
    Warning: Invalid argument supplied for foreach()

  2. #2
    ho notato una cosa se faccio questo:

    Codice PHP:
    $categorie0array("ABBIGLIAMENTO#ABBIGLIAMENTO SPORTIVO#CALZATURE#PELLETTERIA#CALZATURE#ATTREZZATRA SPORTIVO");
    $categoria=explode("#",$categorie);
    $categoria=array_unique($categoria);
    echo 
    $categoria
    for($x=0;$x<=count($categoria);$x++){
    echo 
    $categoria[$x]."
    "
    ;

    mi da 5 elementi dell'arrai visto che ne sono 6 ma 2 sono uguali.

    ma nella stampa degli elementi mi da uqesto:

    ABBIGLIAMENTO
    ABBIGLIAMENTO SPORTIVO
    CALZATURE
    PELLETTERIA

    ATTREZZATRA SPORTIVO

    mi lascia un campo vuoto tra PELLETTERIA e ATTREZZATURA SPORTIVA

    è probabile che l'errore del foreach deriva d aquesto vuoto???
    e se si come lo risolvo???

  3. #3
    Allora se il problema è questo prova a modificare la query così:

    Select distinct Categoria From archivio

    ed elimina la funzione array_unique...

  4. #4
    se faccio un conteggio sull'array:

    Codice PHP:
    echo count($categoria); 
    mi da 1 invece di 5

  5. #5
    non posso fare come dici te se no non usavo il foreach

    il fatto che nel campo categoria un'articolo può contenere + categorie separate da un # (cancelletto) per poi separarli con explode.

    Devo epr forza fare così.

  6. #6
    mmmm
    non capisco cosa intendi... forse dovrei conoscere anche il contenuto della foreach per capire...

  7. #7
    bè ho trovato il rpoblema ma non riesco a risolverlo.

    se tolgo a riga:
    Codice PHP:
    $categoria=sort($categoria); 
    lo script funge benissimo ma non ho l'array in ordine alfabetico.

    se ce lo metto mi da l'errore.

    Ma come è possibile sta cosa???

    il sort ordina solo l'array è possibile che mi ordina la chiave ma non il valore???
    Tiro a casaccio perchè non capisco proprio il problema.

  8. #8
    ah no ok, ho capito ... intendi il campo categoria del db, non la variabile categoria...

  9. #9
    Se sostituisci:

    $categoria=sort(array_unique($categoria));

    con

    $categoria = array_unique($categoria);
    $categoria=sort($categoria);

    cambia qualcosa?

  10. #10
    già fatto mi da lo stesso errore
    è sort che mi da errore
    perche se lo tolgo mi funge
    ma non in ordine alfabetico.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.