Newsgroup: it.comp.www.php
Titolo: Help inserimento dati in db mysql

Ciao a tutti, ho il seguente problema. Sto facendo un'interfaccia per 
l'inserimento di vari dati per la gestione di un sito di basket, tra i quali 
le varie giornate. La prima cosa che faccio è chiedere quante giornate 
devono essere inserite, e successivamente con un ciclo for creo un form dal 
quale inserire tutte le varie date delle giornate...es: 
www.vincio.net/temp.jpg
 . Ora vorrei sapere come faccio ad inserire quei 
dati nel db. Quei due cambi vengono presi come "andata" e "ritorno", facendo 
un ciclo for saranno tutti uguali, come faccio ad inserire tutti i dati 
correttamente nel db facendoli corrispondere alla giusta giornata?
Tnx :)
-- 
http://www.vincio.net
 

 Tnx :)
se modifichi questo codice potrebbe servirti..
<?php
if(!isset($_POST['submit'])){
echo <<< EOF
<form action='{$_SERVER['PHP_SELF']}' method='post'>
<input type='text' name='row'>
<input type='submit' name='submit' value='Invia numero righe'>
</form>
EOF;
}
else if($_POST['submit'] == 'Invia numero righe' AND isset($_POST['row'])){
echo <<< EOF
<form action='{$_SERVER['PHP_SELF']}' method='post'>
EOF;
  $_POST['row'] = intval($_POST['row']);
  for($i = 0; $i < $_POST['row']; $i++){
echo <<< EOF
<input type='text' name='rows[$i][1]'> <input type='text' name='rows[$i
[2]'><br />
EOF;
}
echo <<< EOF
<input type='submit' name='submit' value='Registra'>
</form>
EOF;
}
else if($_POST['submit'] == 'Registra' AND isset($_POST['rows'])){
  if(is_array($_POST['rows'])){
    while(list(, $item) = each($_POST['rows'])){
      list(, $entrata, $uscita) = $item;
      // simulazione inserimento dei dati nel db
      echo "INSERT INTO table_name (entrata, uscita) values ('" .
mysql_escape_string($entrata) . "', '" .  mysql_escape_string($uscita) .
"')<br />";
    }
  }
}
?>
-- 
www.iuz-lab.info


Scusami ma non riesco a capire cosa fa quello script :(
-- 
http://www.vincio.net
 

 Scusami ma non riesco a capire cosa fa quello script :(
in che senso.. cosa è che non capisci?
-- 
www.iuz-lab.info


Non riesco a capire cosa fa e quindi come posso modificarlo per risolvere il 
mio problema :(
-- 
http://www.vincio.net
 

Raga ho provato questa cosa rozza ma non va, ditemi che ne pensate pls.
Questa è la parte che crea il form di inserimento dopo che ho detto quante 
sono le giornate:
    for($j=1;$j<=$giornate;$j++){
     echo'
              <tr>
                <td width="100%" colspan="2">
                <table border="0" cellpadding="0" cellspacing="0" 
style="border-collapse: collapse" bordercolor="#111111" width="100%">
                  <tr>
                    <td width="33%">
                    <p align="center">
                    <input type="text" name="andata" maxlength="8"></td>
                    <td width="33%">
                      <input type="hidden" name="giornata" value="'.$j.'^ 
Giornata">
                    <p align="center"><font face="Tahoma" size="2">'.$j.'^
                    giornata</font></td>
                    <td width="34%">
                    <p align="center">
                    <input type="text" name="ritorno" maxlength="8"></td>
                  </tr>
                </table>
                </td>
              </tr>';
     }
Questa è la parte che dovrebbe inserire i dati nel db, che naturalmente non 
funziona, ma non avendo altre idee su come risolvere il problema, ho provato 
lo stesso:
   for($i=1;$i<=$j-1;$i++){
   $sql= "insert into giornate (id_campionato, andata, ritorno, giornata) 
VALUES ('$id_campionato', '$andata', '$ritorno', '$giornata')";
   mysql_query($sql,$connection);
   echo'
        Qui c'è del codice html che mi visualizza ciò che inserisce.
     }
Ditemi un pò voi se avete qualche idea :(
Tnx e scusate.
-- 
http://www.vincio.net
 

 Tnx e scusate.
prova a capire questo..
<?php
$giornate = 3;
if(!isset($rows)){
echo "
<form action='{$_SERVER['PHP_SELF']}' method='post'>
";
for($i = 0; $i < $giornate; $i++){
echo "
Andata: <input type='text' name='rows[$i][0]'> Giornata: <input type='text'
name='rows[$i][1]'> Ritorno: <input type='text' name='rows[$i][2]'><br />
";
}
echo "
<input type='submit' name='submit' value='Registra'>
</form>
";
}
else 
  if(is_array($rows)){
    while(list(, $row) = each($rows)){
      list($andata, $giornata, $ritorno) = $row;
      // qui ci va la query
      echo "INSERT INTO table (andata, giornata, ritorno) values ('$andata',
'$giornata', '$ritorno')<br />";
    }
  } 
?>
-- 
www.iuz-lab.info


Grazie, appena torno dall'uni lo provo, buona giornata.
-- 
http://www.vincio.net
 


L'idea dell'array bidimensionale è perfetta, prima non avevo capito come 
l'avevi implementata...grazie mille :)
Ora c'è un problema, o meglio, non fa l'inserimento nel db senza alcun 
motivo, bah...ecco il codice:
   if(is_array($rows)){
       while(list(, $row) = each($rows)){
         list($andata, $giornata, $ritorno) = $row;
   mysql_query($sql,$connection);
   $sql= "INSERT INTO giornate (andata, giornata, ritorno, id_campionato) 
values ('$andata', '$giornata', '$ritorno', '$id_campionato')";
   echo'
        HTML';
      }
     }
Secondo voi quale può essere il problema che non fa inserire i dati nel db? 
I dati vengono stampati però :(
Grazie.
-- 
http://www.vincio.net
 

Vincio wrote:

intanto..
$sql= "INSERT INTO giornate (andata, giornata, ritorno, id_campionato)
values ('$andata', '$giornata', '$ritorno', '$id_campionato')";
mysql_query($sql,$connection) or print(mysql_error());
non ha senso prima lanciare la query con $sql e dopo valorizzare $sql..
guarda se con il codice sopra ti restituisce qualche errore e se si.. agisci
di conseguenza..
-- 
www.iuz-lab.info


Grazie per il suggerimento, ma hai insegnato un'altra cosa :D .. quel 
mysql_error mi ha indicato la strada, avevo dichiarato un campo con un nome 
ma che nel db ne aveva un altro. Per quanto riguarda la query era messa 
dopo, ho fatto il montaggio del codice male qui :D
Grazie mille :)
-- 
http://www.vincio.net
 

 Grazie mille :)
di niente..
posso farti una domanda..
che uni frequenti?
-- 
www.iuz-lab.info


Informatica a Messina...se ti chiedi come mai sono già a casa è perchè 
mancava un professore....di solito esco alle 18 :D
-- 
http://www.vincio.net
 

Scusate, riuscite a capire perchč diavolo non mi inserisce il valore 
dell'array in modo giusto? Mi inserisce soltanto un elemento all'indice i=7, 
e tra l'altro il valore che mi inserisce č l'ultimo che viene inserito 
nell'array $rows.
 $sql = mysql_query("select * from squadre where 
campionato='$id_campionato'",$connection);
    $giornate = mysql_num_rows($sql);
       $sql2="select id_squadra from squadre where 
campionato='$id_campionato'";
       $sql_result2= mysql_query($sql2,$connection);
       while($info2=mysql_fetch_array($sql_result2)) {
        $rows[$i]=$info2["id_squadra"];
    }
    if(is_array($rows)){
        for($i=0,$j=1;$i<$giornate;$i++,$j++){        //qui poi sostituisco 
questa cosa brutale che č $giornate con la lunghezza trovata con count()
        $sql3= "INSERT INTO classifica ( campionato, posizione, squadra) 
VALUES ('$id_campionato', '$j', '$rows[$i]')";
        mysql_query($sql3,$connection) or print(mysql_error());
        }
    } 

     }
-- 
www.iuz-lab.info


Risolto tutto con un while semplicissimo, che avevo tentato anche ieri sera, 
ma che forse per la stanchezza avevo scritto male.
Grazie ancora, ciao :)
-- 
http://www.vincio.net