Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Aiuto script Php

  1. #1

    Aiuto script Php

    Scusate, avrei bisogno di un aiuto per capire come mai non funziona questo script.
    Lo script originario, prendeva un file e leggeva riga per riga dividendo le parole che erano separate con un segno ad esempio ' - '.
    Eccolo quà:

    Codice PHP:
    #specifichiamo il percorso del nostro file txt 
    $linee file("http://www.tuosito.it/file.txt"); 
    while(list(,
    $value) = each($linee)) { 
    #prendo la riga e la divido in base al carattere scelto (quello tra parentesi quadre)
     
    list($nome$cognome$email) = split("[,]"$value); 
    #Usiamo trim() per eliminare eventuali spazi vuoti 
    $params["nome"] = trim($nome);
     
    $params["cognome"] = trim($cognome); 
    $params["email"] = trim($email); 
    #Stampiamo i risultati a video 
    echo $params["nome"]." ".$params["cognome"]." ".$params["email"]; 

    ?> 
    Questo così funziona bene, scrive tutte le righe e tutte le parole.

    Ora il mio problema è che dovrei salvare ogni parola che va a separare nel database, sono partite di calcio, quindi il terzo campo mi è inutile, esempio.
    inter - catania nel database deve mettermi inter nella colonna casa e catania nella colonna ospite.

    Il mio script funziona solo con la prima squadra. il Mysql mi da la scritta Error: senza codice, quindi non so cosa succede.




    Codice PHP:
    <?php 
    include("connessione_db.php"); 
    include(
    "config.php"); 
    mysql_select_db("$db_name",$connessione); 
    #specifichiamo il percorso del nostro file txt $linee = file("./file.txt"); 
    while(list(,$value) = each($linee)) { 
    #prendo la riga e la divido in base al carattere scelto (quello tra parentesi quadre) list($casa, $ospite) = split("[-]", $value); 
    #Usiamo trim() per eliminare eventuali spazi vuoti 
    $params["casa"] = trim($casa); 
    $casa=$params["casa"]; 
    $params["ospite"] = trim($ospite); 
    $ospite $params["ospite"]; 
    #Stampiamo i risultati a video 
    echo $casa." ".$ospite"
    "

    mysql_query("INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"); 
    if (!
    mysql_query($sql,$con)) { die('Error: ' mysql_error()); } echo "Giornata N° ".$n_giornata." caricata"; } 
    ?>
    Spero di essere stato il più chiaro possibile, se posso inserire la pagina per farvi vedere che errore da, la inserirò. grazie in anticipo a chi risponde.

    i dati del database e la variabile $n_giornata sono nel file config.php, funziona ma inserisce solo la prima partita, quindi due squadre più il numero della giornata.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    prova così:
    Codice PHP:
    include("connessione_db.php"); 
    include(
    "config.php"); 
    mysql_select_db("$db_name",$connessione); 
    #specifichiamo il percorso del nostro file txt $linee = file("./file.txt"); 
    while(list(,$value) = each($linee)) { 
        
    #prendo la riga e la divido in base al carattere scelto (quello tra parentesi quadre) list($casa, $ospite) = split("[-]", $value); 
        #Usiamo trim() per eliminare eventuali spazi vuoti 
        
    $params["casa"] = trim($casa); 
        
    $casa=$params["casa"]; 
        
    $params["ospite"] = trim($ospite); 
        
    $ospite $params["ospite"]; 
        
    #Stampiamo i risultati a video 
        
    echo $casa." ".$ospite"
    "

        
        
    $sql "INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"
        
    mysql_query($sql,$con) or die('Error: ' mysql_error()); 
        echo 
    "Giornata N° ".$n_giornata." caricata"

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    no, con quello che hai scritto tu, aggiustati i commenti che prendevano parti del codice, non inserisce niente nel database. Per curiosità, cosa hai cambiato?

    Comunque se ti può servire l'output è questo:

    catania palermo
    Error:

    e nel databse esce quella partita per ogni volta che aggiorno la pagina, non è per caso il while? oppure devo chiudere la connessione a mysql e riaprirla ogni volta che inizia e finisce il while?

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    tu facevi

    Codice PHP:
    mysql_query("INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"); // esegui la query che va a buon fine

    if (!mysql_query($sql,$con)) { die('Error: ' mysql_error()); } echo "Giornata N° ".$n_giornata." caricata"; } // esegui un altra query vuota, perchè $sql non esiste e ovviamente si blocca. 
    in sostanza fai 2 query di cui la prima giusta e la seconda assolutamente assura (perchè vuota e inutile) quindi te l'ho corretta in questo modo:

    Codice PHP:
    $sql "INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"// inserisci nella variabile $sql
    mysql_query($sql,$con) or die('Error: ' mysql_error()); // esegui la query e la blocchi nel caso non vada a buon fine 
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    non funziona ancora, non è che qualcuno potrebbe aiutarmi a creare un altro script simile?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    111
    Se l'originario funziona di dovrebbe funzionare anche cosi':
    Codice PHP:
    #specifichiamo il percorso del nostro file txt
    $linee file("http://www.tuosito.it/file.txt");
    include(
    "connessione_db.php");
    include(
    "config.php");
    mysql_select_db("$db_name",$connessione);
    while(list(,
    $value) = each($linee)) {
    #prendo la riga e la divido in base al carattere scelto (quello tra parentesi quadre)
     
    list($casa$ospite) = split("[,]"$value);
    #Usiamo trim() per eliminare eventuali spazi vuoti
    $casa trim($casa);
     
    $ospite trim($ospite);
    //esempio giornata 3
    $n_giornata=3;
    #Stampiamo i risultati a video

    echo $casa." ".$ospite"
    "
    ;
    $result=mysql_query("INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')");
    if (!
    $result) { die('Error: ' mysql_error()); } echo "Giornata N° ".$n_giornata." caricata";

    $n_giornata da dove lo prendi sempre da list();

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    $con che cosa è? non è definita e quando usi mysql_select_db usi $connessione e non $con .... mi sa che non esiste, quindi usa $connessione

    Codice PHP:
    $sql "INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"// inserisci nella variabile $sql
    mysql_query($sql,$connessione) or die('Error: ' mysql_error()); // esegui la query e la blocchi nel caso non vada a buon fine 
    oppure toglila del tutto

    Codice PHP:
    $sql "INSERT INTO partita (casa, ospite, n_giornata) VALUES ('$casa','$ospite','$n_giornata')"// inserisci nella variabile $sql
    mysql_query($sql) or die('Error: ' mysql_error()); // esegui la query e la blocchi nel caso non vada a buon fine 
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  8. #8
    Non funziona, avevo pensato di prendere i valori che andava a prelevare dalle righe, cioè $casa e $ospite, volevo metterli in due array e poi inserire il tutto con un ciclo for in mysql, come posso creare un array vuoto?

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non ho capito a cosa ti serve, comunque per creare un array vuoto ti basta fare

    $variabile = array();
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

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.