Visualizzazione risultati 1 fino 9 di 9

Discussione: Problema If database

  1. #1
    Guest

    Predefinito Problema If database

    Ciao a tutti,piacere mi chiamo francesco
    ho un problema,sono ancora agli inizi e faccio un po' di fatica.
    non riesco a trovare l'errore
    la prima pagina è questa
    Codice HTML:
    <html>
    	<head>
    		<title>
    			Magazzino
    		</title>
    	</head>
    	<?php
    	
    	?>
    	<script>
    		function controllo(){
    			return true;
    		}
    	</script>
    	<body>
    		<form name="Magazzino" action="Materiali.php" method="post" onsubmit="return controllo (this)">
    			<select name="tipo">
    				<option value="Barre"> Barre </option>
    				<option value="Silicone"> Silicone </option>
    			</select>
    			<input type="submit" value="manda">
    		</form>
    	</body>
    </html>

    la seconda pagina che viene aperta da questo script è questa:
    Codice PHP:
    <?php
    $username
    ="Tia";
    $password="";
    $database="materiali";
    $localhost="localhost";

    mysql_connect($localhost,$username,$password);
    @
    mysql_select_db($database) or die("Impossibile selezionare il database");



    ?>
    <?php


    $scelta
    =$_POST["tipo"];
    if(
    $scelta == "Barre"):
    echo
    "
    <table border='5' cellspacing='2' cellpadding='5'>
    <th><font face='Arial, Helvetica, sans-serif'>Nome</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Quantita</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Metri</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Codice</font></th>
    <tr>
    </tr> "
    ;
    $query="SELECT * FROM barre";
    $risultati=mysql_query($query);
    $num=mysql_numrows($risultati);

    $i=0;
    while (
    $i < $num)
    $Nome=mysql_result($risultati,$i,"Nome");
    $Quantita=mysql_result($risultati,$i,"Quantita");
    $Metri=mysql_result($risultati,$i,"Metri");
    $Codice=mysql_result($risultati,$i,"Codice");
    Echo
    "
    <tr>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Nome;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Quantita;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Metri;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Codice;?></font></td>

    </tr> "
    ;

    echo
    "&egrave; proprio barre";
    elseif(
    $scelta == "Silicone"):
    $query1="SELECT * FROM silicone";
    $risultati1=mysql_query($query1);
    $num1=mysql_numrows($risultati1);
    echo
    "&egrave; proprio silicone";

    endif;
    mysql_close();
    ?>
    Come posso risolvere? grazie in anticipo
    Ultima modifica di saitfainder : 17-03-2014 alle ore 10.59.06

  2. #2
    Guest

    Predefinito

    Scusa ma dal tuo post non ho ben capito il tuo problema...

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da mathis Visualizza messaggio
    Scusa ma dal tuo post non ho ben capito il tuo problema...
    In pratica quello che mi servirebbe a me è far funzionare una combobox con due o più valori, ad esempio ho :
    barre
    silicone
    selezionando una delle due voci mi deve caricare la tabella corrispondente tramite database. Quando clicco sul pulsante manda ci mette tanto a caricare l'altra pagina per poi riscontrare questo errore:
    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Materiali.php on line 32.
    Non so capisco l'errore.

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Usi una while senza parentesi graffe, motivo per cui viene eseguita solo la riga immediatamente successiva che non incrementa contatore $i e quindi l'esecuzione rimane bloccata lì e lo script va in timeout dopo 30 secondi.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Tieni presente che il PHP non è come il Python, i blocchi di istruzioni vanno inseriti fra le parentesi graffe come indicato da Saitfainder, non indentandoli. Fai lo stesso errore con l'if

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Tieni presente che il PHP non è come il Python, i blocchi di istruzioni vanno inseriti fra le parentesi graffe come indicato da Saitfainder, non indentandoli. Fai lo stesso errore con l'if
    Ho provato a fare come dite voi ma cmq mi da l'errore all'" elseif"
    Codice PHP:
    <?php



    $scelta
    =$_POST["tipo"];
    if(
    $scelta == "Barre"){
    echo
    "
    <table border='5' cellspacing='2' cellpadding='5'>
    <th><font face='Arial, Helvetica, sans-serif'>Nome</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Quantita</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Metri</font></th>
    <th><font face='Arial, Helvetica, sans-serif'>Codice</font></th>
    <tr>
    </tr> "
    ;
    $query="SELECT * FROM barre";
    $risultati=mysql_query($query);
    $num=mysql_numrows($risultati);


    }
    $i=0;
    while (
    $i < $num) {
    $Nome=mysql_result($risultati,$i,"Nome");
    $Quantita=mysql_result($risultati,$i,"Quantita");
    $Metri=mysql_result($risultati,$i,"Metri");
    $Codice=mysql_result($risultati,$i,"Codice");
    Echo
    "
    <tr>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Nome;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Quantita;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Metri;?></font></td>
    <td><font face='Arial, Helvetica, sans-serif'><?php echo
    $Codice;?></font></td>

    </tr> "
    ;

    }
    elseif(
    $scelta == "Silicone"){
    $query1="SELECT * FROM silicone";
    $risultati1=mysql_query($query1);
    $num1=mysql_numrows($risultati1);
    echo
    "&egrave; proprio silicone";
    }
    endif;
    mysql_close();
    ?>
    Mi da questo
    Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in C:\xampp\htdocs\Materiali.php on line 48
    Ho capito che manca ancora qualche parentesi ma non capisco dove..
    Ultima modifica di karl94 : 19-03-2014 alle ore 22.44.49 Motivo: Formattazione del codice

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Hai fatto così:

    Codice PHP:
    if($scelta == "Barre"){
    ///codice
    }
    while (
    $i < $num) {
    ///codice
    }

    elseif(
    $scelta == "Silicone"){
    ///codice
    }
    È normale avere un errore, perché elseif non ha alcun "if" prima.

    Ciao!

  8. #8
    Guest

    Predefinito

    Okay grazie,ho messo un'altro if prima di elseif e cancellato endif ora va ma continua a caricarmi una tabella con tante caselline vuote fino all'infinito <.<

  9. #9
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Intanto userei la ben più pratica mysql_fetch_assoc per elaborare le varie ottenute dal database. Basta vedere gli esempi di base per scoprire come usarla e fondamentalmente il codice assume questa forma più pratica:

    Codice PHP:
    while ($row = mysql_fetch_assoc($res)) { ... }
    Poi vedo che fai delle "SELECT *". Occhio quindi alle maiuscole nei nomi dei campi perché se non corrispondono al modo in cui scrivi dopo puoi avere un problema come quello che descrivi. La cosa migliore è quella di esplicitare sempre il nome dei campi nella SELECT, così il codice rimane anche più chiaro in futuro.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •