Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con l'IF

  1. #1
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129

    Problema con l'IF

    Salve a tutti, non riesco a trovare l'errore in questo codice che ho scritto:

    Codice PHP:
    <form name="form_registrazione" method="post" action="<?php $_PHP_SELF ?>">
       <table width=”200″ border=”0″>
      
       <tr>
      <td>Cyl:</td>
      <td><?php 
     
    include ("config.php"); 
     
     
    $DBName="rail";
     
    mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
     
    //table cyl
     
    $sql ="SELECT id FROM cyl where cyl='$cyl'";
     
    $rmysql_query($sql);
     
    $vmysql_fetch_array($r);
     
    $id$v['id'];
     
     
    $sqlquery ="SELECT id,cyl FROM cyl";
     
    $result mysql_query($sqlquery);
     if (!
    $sqlquery) {
               exit (
    '<p> Errore mentre recuperavo i dati' mysql_error() . '</p>');
                    }
      while (
    $valuemysql_fetch_array($result))  
       {
        
    $val=$value['cyl'];
        
    $indice=$value['id'];
        if (
    $indice==$id){
        
    ?>
       <td width="" bgcolor="" colspan="">
        <textarea name="cyl"  value="<?php $value['cyl']?>" rows="1" cols="10"><?php echo $value['cyl'];?></textarea> 
       </td>
    <?php} else { ?>
      <td><label><?php echo $val?></label></td>
      <?php }
     }echo 
    " </div>";
      
     
    ?> </td>
       </tr>
      
      </table>
      <br> <br> 
       <p>
         <input name="invia" type="submit" value="Save" />
       </p>
     </form>
    Non mi funziona l'if, se un certo valore è uguale ad un certo indice, deve stampare l'output in una textarea, altrimenti in una label. Non riesco a capire perchè mi stampa due volte il valore con l'indice uguale, una volta me lo stampa in una textarea, una volta in una label, gli altri valori nella tabella del database non li considera proprio. Dove ho sbagliato?
    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    <?php} else { ?> dovrebbe darti un errore di sintassi da php 5.4 in poi. Alla direttiva <?php deve seguire uno spazio o una nuova linea.

    codice:
    $sqlquery ="SELECT id,cyl FROM cyl";
     $result = mysql_query($sqlquery);
     if (!$sqlquery) {
    Ripensa a cosa contiene $sqlquery.

    codice:
    <textarea name="cyl"  value="<?php $value['cyl']?>" rows="1" cols="10">
    Attributi utilizzabili: https://developer.mozilla.org/en/doc...ement/textarea

    Come costruire una tabella in html (brrr): https://developer.mozilla.org/en-US/...e#Simple_Table

    Non riesco a capire perchè mi stampa due volte il valore con l'indice uguale, una volta me lo stampa in una textarea, una volta in una label, gli altri valori nella tabella del database non li considera proprio.
    E noi come possiamo saperlo?

  3. #3
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, ci sono un po' di errori, quelli segnalati da Kurt e degli echo mancanti dove cerchi di printare delle variabili nei tag/attributi.
    La action del form e' errata o ad ogni modo se deve restare la stessa url corrente potresti anche omettere il valore che per default diventa la url corrente.
    Ho riscritto al volo, puoi provare e vedere se funziona (non ho potuto ovviamente testare)
    [code]




    <form name="form_registrazione" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <table width=”200″ border=”0″>

    <tr>
    <td>Cyl:</td>
    <td>
    <?php


    include ("config.php");

    $DBName="rail";
    mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

    $sql ="SELECT id FROM cyl where cyl='$cyl'";
    $r= mysql_query($sql) or die(mysql_error());
    $v= mysql_fetch_row($r);
    $id= $v['id'];

    $sqlquery ="SELECT id,cyl FROM cyl";


    $result = mysql_query($sqlquery) or die('<p> Errore mentre recuperavo i dati' . mysql_error() . '</p>');


    while ($value= mysql_fetch_array($result))
    {
    $val=$value['cyl'];
    if ($value['id']==$id){
    ?>
    <td width="" bgcolor="" colspan="">
    <textarea name="cyl" value="<?php echo $value['cyl']; ?>" rows="1" cols="10"><?php echo $value['cyl']; ?></textarea>
    </td>
    <?php
    } else { ?>
    <td><label><?php echo $val; ?></label></td>
    <?php
    }
    }
    ?>
    </div>

    </td>
    </tr>

    </table>
    <br> <br>
    <p>
    <input name="invia" type="submit" value="Save" />
    </p>
    </form>
    [/php]
    NB
    gli spazi fra i tag php e le istruzioni fanno la differenza come le punteggiature in alcuni casi.

  4. #4
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Grazie mille

  5. #5
    Utente di HTML.it L'avatar di Valeria89
    Registrato dal
    Apr 2015
    residenza
    Pisa
    Messaggi
    129
    Grazie

Tag per questa discussione

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.