Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problema con SWITCH CASE

    ho creato uno script che al suo interno contiene il seguete codice:

    Codice PHP:
    switch (true){
      case (
    $colname =='v_products_price'):
           if (
    $ricarico == '' || $ricarico == NULL){ $ricarico 0; }
           
    $price = (($split_uploaded_filename[$col] * $ricarico) / 100) + $split_uploaded_filename[$col];
           
    $data_string .= $price.$tab;
           break;
      case (
    $search=(strpos($colname,'name')) !== FALSE):
           for (
    $z=1$z<=$num_lang $z++){
           
    $data_string .= $split_uploaded_filename[$col].$z.$tab;
           }
    //eof for
           
    break;
       default: 
    $data_string .= $split_uploaded_filename[$col].$tab;
    }
    // eof switch 
    ma lo script mi esegue sempre il secondo "case" anche quando nella stringa $colname non compare la parola name...secondo voi è giusto lo script?? Sicuramente ho sbagliato qualocosa che non arrivo a vedere!! :master:
    Cmq voglio che il secondo "case" si attivi solo quando all'interno della stringa $colname compare la parola "name", è corretta la sintassi???

  2. #2
    cos'è true????

    switch (true){
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    hai sbagliato la struttura dello switch
    Codice PHP:
    switch ($colname){
      case 
    'v_products_price':
           if (
    $ricarico == '' || $ricarico == NULL){ $ricarico 0; }
           
    $price = (($split_uploaded_filename[$col] * $ricarico) / 100) + $split_uploaded_filename[$col];
           
    $data_string .= $price.$tab;
           break;
      case 
    strpos($colname,'name'):
           for (
    $z=1$z<=$num_lang $z++){
           
    $data_string .= $split_uploaded_filename[$col].$z.$tab;
           }
    //eof for
           
    break;
       default: 
    $data_string .= $split_uploaded_filename[$col].$tab;
    }
    // eof switch 
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  4. #4

    Problema con SWITCH CASE

    Originariamente inviato da bonaprogram
    hai sbagliato la struttura dello switch
    ho modificato lo script come mi hai detto, ma ora mi va sempre in default....ho fatto per sicurezza un echo di tutto e mi restituisce questo:

    ------------------------
    v_products_model default v_products_image default v_products_name_ default v_products_description_ default v_products_url_ default v_specials_price default v_specials_date_avail default v_specials_expires_date default v_products_price case1 v_products_weight default v_date_avail default v_date_added default v_products_quantity default v_manufacturers_name default
    ------------------------

    Per comodità visiva ho messo in grassetto il conetnuto di $colname e in rosso i punti dove ha sbagliato.
    Dove sta l'errore?

  5. #5
    Originariamente inviato da Al_katraz984
    cos'è true????

    switch (true){
    avevo seguito questa idea http://it.php.net/manual/it/control-...itch.php#54251

    ma a quanto pare nn funziona nessuno dei due metodi

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da bonaprogram
    hai sbagliato la struttura dello switch
    Ma anche no. Sei tu che l'hai sbagliata.

    @angelomorto: il tuo codice per me va bene. Facendo la stessa prova che hai fatto tu mi esce questo

    v_products_model: default
    v_products_image: default
    v_products_name_: case2
    v_products_description_: default
    v_products_url_: default
    v_specials_price: default
    v_specials_date_avail: default
    v_specials_expires_date: default
    v_products_price: case1
    v_products_weight: default
    v_date_avail: default
    v_date_added: default
    v_products_quantity: default
    v_manufacturers_name: case2

    Questo è il codice che ho usato
    Codice PHP:
    function sw($colname) {
    echo 
    "$colname: ";
    switch (
    true){
      case (
    $colname =='v_products_price'):
           echo
    "case1
    "
    ;
           break;
      case (
    $search=(strpos($colname,'name')) !== FALSE):
           echo 
    "case2
    "
    ;
           break;
       default: echo 
    "default
    "
    ;
    }
    }

    $string[] = 'v_products_model';
    $string[] = 'v_products_image';
    $string[] = 'v_products_name_';
    $string[] = 'v_products_description_';
    $string[] = 'v_products_url_';
    $string[] = 'v_specials_price';
    $string[] = 'v_specials_date_avail';
    $string[] = 'v_specials_expires_date';
    $string[] = 'v_products_price';
    $string[] = 'v_products_weight';
    $string[] = 'v_date_avail';
    $string[] = 'v_date_added';
    $string[] = 'v_products_quantity';
    $string[] = 'v_manufacturers_name';
    foreach (
    $string as $strsw($str); 

  7. #7
    Originariamente inviato da luca200
    Ma anche no. Sei tu che l'hai sbagliata.

    @angelomorto: il tuo codice per me va bene. Facendo la stessa prova che hai fatto tu mi esce questo
    Bho! non so che dirti, per come l'avevo fatto nel primo post nn mi funzionava, invece modificandolo così funziona

    Codice PHP:
    switch (true){ 
      case (
    $colname =='v_products_price'): 
           if (
    $ricarico == '' || $ricarico == NULL){ $ricarico 0; } 
           
    $price = (($split_uploaded_filename[$col] * $ricarico) / 100) + $split_uploaded_filename[$col]; 
           
    $data_string .= $price.$tab
           break; 
      case (
    strpos($colname,'name') == TRUE): 
           for (
    $z=1$z<=$num_lang $z++){ 
           
    $data_string .= $split_uploaded_filename[$col].$z.$tab
           }
    //eof for 
           
    break; 
       default: 
    $data_string .= $split_uploaded_filename[$col].$tab
    }
    // eof switch 
    :master:

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da angelomorto
    Bho! non so che dirti, per come l'avevo fatto nel primo post nn mi funzionava, invece modificandolo così funziona
    Come hai visto io l'ho provato nella forma originale e funzionava.
    Visto che le istruzioni che esegui nel secondo case e nel default si assomigliano, probabilmente avevi sbagliato a interpretare i risultati (oppure avevi un errore nel codice ma l'hai corretto postando qui )

  9. #9
    Originariamente inviato da luca200
    Come hai visto io l'ho provato nella forma originale e funzionava.
    Visto che le istruzioni che esegui nel secondo case e nel default si assomigliano, probabilmente avevi sbagliato a interpretare i risultati (oppure avevi un errore nel codice ma l'hai corretto postando qui )
    Molto probabile! Purtroppo non sembra ma il PHP è molto sensibile, basta una virgola che non funziona più niente!

  10. #10
    è cosi per tutti i linguaggi di programmazione
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

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.