Visualizzazione risultati 1 fino 22 di 22

Discussione: [PHP] Errore in query

  1. #1
    Guest

    Predefinito [PHP] Errore in query

    ho creato uno script per l'archiviazione di script
    Codice PHP:
    <?php
    $titolo
    ="WebEasy - Nuovo script";
    $url="../";
    include(
    $url."inc/su.php");
    if(isset(
    $_POST['invia'])) {
    $tipo=$_POST['tipo'];
    $nome=$_POST['nome'];
    $autore=$_POST['autore'];
    $email=$_POST['email'];
    $giorno=date("d");
    $mese=date("m");
    $anno=date("Y");
    $tmp_file=$_FILES['file']['tmp_name'];
    $nome_file=basename($_FILES['file']['name']);
    $tipo_file=$_FILES['file']['type'];
    $voto=$_POST['voto'];
    $descrizione=$_POST['descrizione'];
    if(
    $password != $_POST['pass']) { ?>
    <script language="JavaScript">
    history.back();
    alert("Password sbagliata!");
    </script>
    <? exit();
    } else {
    if(
    $nome == null or $autore == null or $email == null or $descrizione == null) { ?>
    <script language="JavaScript">
    history.back();
    alert("Riempi tutti i campi!");
    </script>
    <? exit();
    } else {
    if(
    $tipo_file != "application/octet-stream") { ?>
    <script language="JavaScript">
    location.href = "javascript:history.go(-1)";
    alert("<?=$tipo_file;?>");
    </script>
    <? exit();
    } else {
    Db($db);
    $query="INSERT INTO script_$tipo (nome, autore, email, giorno, mese, anno, nome_file, descrizione, voto) VALUES ('$nome', '$autore', '$email', '$giorno', '$mese', '$anno', '$nome_file', '$descrizione', '$voto')";
    if (
    mysql_query($query, $db)) {
    move_uploaded_file($tmp_file,$tipo."/download/".$nome_file);
    echo
    "Lo script &egrave; stato inserito correttamente";
    } else {
    ?>
    <script language="JavaScript">
    history.back();
    alert("Errore durante l'inserimento dello script!");
    </script>
    <? exit();
    }
    }
    }
    }
    } else {
    ?>
    <div align="center">
    <form method="POST" enctype="multipart/form-data">
    <input type="hidden" name="invia" />
    <table width="540" vspace="20" class="tabella">
    <tr>
    <td>Tipo</td>
    <td><select name="tipo" class="form">
    <option value="html" selected="selected">HTML</option>
    <option value="javascript">Javascript</option>
    <option value="php">PHP</option>
    <option value="flash">Flash</option>
    <option value="css">CSS</option>
    </select></td>
    </tr>
    <tr>
    <td width="82">Titolo:</td>
    <td width="446"><input type="text" size="40" name="nome" class="form" /></td>
    </tr>
    <tr>
    <td>Autore:</td>
    <td><input type="text" size="40" name="autore" class="form" /></td>
    </tr>
    <tr>
    <td>E-mail:</td>
    <td><input type="text" size="40" name="email" class="form" /></td>
    </tr>
    <tr>
    <td valign="top">File:</td>
    <td><input id="file" name="file" type="file" size="40" class="form" /></td>
    </tr>
    <tr>
    <td valign="top">Voto:</td>
    <td><select name="voto" class="form">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    </select>
    </td>
    </tr>
    <tr>
    <td valign="top">Descrizione:</td>
    <td><textarea name="descrizione" cols="55" rows="5" wrap="virtual" class="form"></textarea></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input type="password" size="40" name="pass" class="form" /></td>
    </tr>
    </table>
    <input type="submit" value="Invia" />
    </form>
    </div>
    <? }
    include(
    $url."inc/giu.php");?>
    e fino qui funziona tutto
    poi ho creato download.php che mi permette di scaricare il file
    premetto che la funzione Db($db) è definita nel file su.php e serve per connettersi al database
    Codice PHP:
    <?php
    $titolo
    ="WebEasy - Download";
    $url="../";
    include(
    $url."inc/su.php");
    $tipo=$_GET['tipo'];
    $file=$_GET['file'];
    Db($db);
    $query="SELECT * from script_".$tipo." WHERE nome_file = '$file'";
    $risultato=mysql_query($query);
    $num_righe=mysql_num_rows($risultato);
    if(
    $num_righe) {
    $row=mysql_fetch_array($risultato);
    $download=$row[nome_file];
    $download=++$download;
    $query="UPDATE script_".$tipo." SET download = '$download' WHERE nome_file = '$file'";
    if(
    mysql_query($query)) {
    header("Location: ".$tipo."/download/".$file);?>
    <script language="JavaScript">
    history.back();
    </script>
    <? } else {
    echo
    "Errore! Riprova! 1";
    }
    } else {
    echo
    "Errore! Riprova! 2";
    }
    include(
    $url."inc/giu.php");
    ?>
    mi restituisce l'errore 2
    Qalc'uno (di sicuri debug) sa dove sbaglio?
    grazie mille in anticipo

  2. #2
    Guest

    Predefinito

    Sostituisci mysql_query($query); con mysql_query($query) or die(mysql_error());


    Ciao!

  3. #3
    Guest

    Predefinito

    grazie mille
    ma se dici in $risultato=mysql_query($query); ho provato ma non funziona lo stesso.
    altri errori?

  4. #4
    Guest

    Predefinito

    Prova a sostituire TESTO DELLA QUERY da $query con mysql_query("TESTO DELLA $query"); e $risultato con mysql_fetch_array($query);
    Ciaooo! ^^

  5. #5
    Guest

    Predefinito

    niente
    neanche cosi funziona
    hai qual che altra idea? te ne sarei gratoi

  6. #6
    Guest

    Predefinito

    Scusami ma questo Db($db); da dove lo recuperi se non fai un include/require prima? xD

  7. #7
    Guest

    Predefinito

    da su.php ecco la funzione completa
    Codice PHP:
    function db(&$db) {
    $db = mysql_connect("localhost", "webeasy", "");
    if (
    $db == FALSE) {
    die (
    "Errore connesione al database");
    }
    mysql_select_db("my_webeasy", $db)
    or die (
    "Errore selezione database");
    }
    ma non mi ha dato mai problemi
    Ultima modifica di webeasy : 18-01-2009 alle ore 01.06.20

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da webeasy Visualizza messaggio
    grazie mille
    ma se dici in $risultato=mysql_query($query); ho provato ma non funziona lo stesso.
    altri errori?
    EH?
    A parte che non ho capito cosa hai risposto, hai provato a fare la modifica che ho fatto io?
    Se non ti restituisce errori MySQL, allora vuol dire che la query è giusta, ed è già qualcosa.


    ciao!

  9. #9
    Guest

    Predefinito

    Codice PHP:
    function db(&$db) {
    $db = mysql_connect("localhost", "webeasy", "");
    if (
    $db == FALSE) {
    die (
    "Errore connesione al database");
    }
    mysql_select_db("my_webeasy", $db)
    or die (
    "Errore selezione database");
    }
    e questo &$db...?

  10. #10
    Guest

    Predefinito

    debug:
    ho provato ma non mi da errory di query

    sIM:
    avevo chiesto sul forum poco tempo fa come creare una funzione di connesione al database e mi hanno detto di fare cosi

    voglio ringraziare entrambi per l'aiuto che mi state dando

  11. #11
    Guest

    Predefinito

    Ho dato uno sguardo a ciò che hai postato, è un po' tutto sballato.
    Ad esempio, dichiari la funzione come db($db) ma la richiami con Db($db), devi fare attenzione alle minuscole e maiuscole.
    Altra cosa, non ti serve a nulla usare l'argomento $db in quella funzione.

    Fai anche questa prova: all'inizio di ogni script, subito dopo il tag di apertra <?php inserisci questo:

    error_reporting(E_ALL);


    Ciao!

  12. #12
    Guest

    Predefinito

    grazie mille ho fatto come hai detto ma mi da ancora questi errori

    Notice: Undefined index: tipo in /membri/webeasy/script/download.php on line 6

    Notice: Undefined index: file in /membri/webeasy/script/download.php on line 7

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /membri/webeasy/script/download.php on line 10

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /membri/webeasy/script/download.php on line 11

  13. #13
    Guest

    Predefinito

    Ecco il problema, lo puoi leggere tu stesso: le variabili passate via GET non esistono.


    Ciao!

  14. #14
    Guest

    Predefinito

    grazie debug non sapevo che cosi si potevano vedere tutti gli errori ma ancora non ci siamo la fila di errori adesso se ridotta a questo
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /membri/webeasy/script/download.php on line 11
    scusa te rompo ancoraq ma non so risolvere questo errore
    mi puoi aiutare?
    te ne sarei grato

  15. #15
    Guest

    Predefinito

    Posta lo script modificato.


    Ciao!

  16. #16
    Guest

    Predefinito

    è identico a prima tranne che adesso visualizza tutti gli errori comunque è questo
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    $titolo="WebEasy - Download";
    $url="../";
    include(
    $url."inc/su.php");
    $tipo=$_GET['tipo'];
    $file=$_GET['file'];
    Db($db);
    $query=mysql_query("SELECT * from script_".$tipo." WHERE nome_file = '$file'");
    $risultato=mysql_fetch_array($query);
    $num_righe=mysql_num_rows($risultato);//errore qua
    if($num_righe) {
    $row=mysql_fetch_array($risultato);
    $download=$row[nome_file];
    $download=++$download;
    $query="UPDATE script_".$tipo." SET download = '$download' WHERE nome_file = '$file'";
    if(
    mysql_query($query, $db)) {
    header("Location: ".$tipo."/download/".$file);?>
    <script language="JavaScript">
    history.back();
    </script>
    <? } else {
    echo
    "Errore! Riprova! 1";
    }
    } else {
    echo
    "Errore! Riprova!";
    }
    include(
    $url."inc/giu.php");
    ?>

  17. #17
    Guest

    Predefinito

    Ma ti avevo detto di mettere or die(mysql_error())!!
    Modifica così:
    Codice PHP:
    echo $query=mysql_query("SELECT * from script_".$tipo." WHERE nome_file = '$file'");
    $risultato=mysql_fetch_array($query)or die(mysql_error());
    $num_righe=mysql_num_rows($risultato)or die(mysql_error());

    Ciao!

  18. #18
    Guest

    Predefinito

    credevo di doverlo mettere solo in $risultato
    comunque mi da i seguenti errori
    Resource id #7
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /membri/webeasy/script/download.php on line 11

  19. #19
    Guest

    Predefinito

    Bene, allora vuol dire che la query viene eseguita correttamente ma non restituisce nessun record.


    ciaooo!

  20. #20
    Guest

    Predefinito

    scusa ma conoscendo poco il mysql ti chiedo se questa cosa è risolvibile

  21. #21
    Guest

    Predefinito

    ma guarda che non è un errore, è solo un dato di fatto: se nel database, nella cartella specificata, non esistono record che soddisfa la query stessa, il comportamento è quello che vedi.

    Puoi omettere il messaggio di errore e di conseguenza verificare la presenza o meno di record estratti, semplicemente facendo questo tipo di controllo:

    $query=mysql_query(...);
    if($query && mysql_num_rows($query)>0){
    // ci sono record estratti
    }else{
    // nessun record estratto
    }


    Ciao!

  22. #22
    Guest

    Predefinito

    ok grazie mille debug (e ovviamente anche te sIM)
    ho deciso di togliere tutta la parte if che mi dava quel problema pero adesso ho un altro problema(nn apro altri topic per non esagerare)
    ecco qui lo script
    Codice PHP:
    <?php
    $titolo
    ="WebEasy - Download";
    $url="../";
    include(
    $url."inc/su.php");
    $tipo=$_GET['tipo'];
    $file=$_GET['file'];
    Db($db);
    $risultato=mysql_fetch_array(mysql_query("SELECT * from script_".$tipo." WHERE nome_file = '$file'"));
    $row=mysql_fetch_array($risultato);
    $download=$row[nome_file];
    $download=$download++;
    $query="UPDATE script_".$tipo." SET download = '$download' WHERE nome_file = '$file'";
    if(
    mysql_query($query, $db)) {
    header("Location: ".$tipo."/download/".$file);
    } else {
    echo
    "Errore! Riprova!";
    }
    include(
    $url."inc/giu.php");
    ?>
    non mi da errori ma 2 problemi:
    1 il download dovrebbe essere incrementato ogni volta che si va alla pagina invece il massimo che arriva è da 0 a 1
    2 il rendirizzamento non avvia il download
    si possono risolvere questi problemi?

Regole di scrittura

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