Visualizzazione risultati 1 fino 18 di 18

Discussione: Problema nel richiamo di una mysql_query

  1. #1
    Guest

    Predefinito Problema nel richiamo di una mysql_query

    Salve, avrei bisogno di un grosso aiuto a causa delle mie poche o addirittura nulle conoscenze in php.
    Ho fatto un programmino che ottiene dagli rss e dal sito il tipo di CATEGORIA- l'URL che riporta alla risposta-la DOMANDA -e la RIPOSTA (tutti dentro un array).
    Il problema è: il programma mi deve caricare su mysql questo array ma mysql non riceve niente la parte che sbaglio si trova in questa funzione

    inoltre ottengo una non dichiarazione variabile :

    Undefined variable: query

    Comunque sia anche senza questa notifica non mi restituisce niente nel database mysql ..... posto la parte che riguarda il problema

    Codice PHP:
    //questa è la funzione che cicla i miei dati dell'array qa,echo mi servono da controllo e fuzionano
    function bulkLoad($data) {
    if (
    $data == null) return;
    $count = count($data);
    $count = 2;
    for (
    $i = 0; $i < $count; $i++) {
    $item = $data[$i];



    $query = "INSERT INTO qa(category, url, title, answer, post_date) VALUES ('".$item->category."','".$item->url."', '".$item->title."', '".$item->answer')";

    echo $item->category;
    echo "<br />";
    echo $item->url;
    echo "<br />";
    echo $item->title;
    echo "<br />";
    echo $item->answer;
    echo "<br />";
    }
    }
    $url_flux_rss = '
    http://fr.answers.com/Q/Special:RSS&tid=5020&answered=true';
    $qa = getCategoryQA($url_flux_rss);
    bulkLoad($qa);
    //var_dump($qa);


    $connessione = mysql_connect('localhost', 'root', 'elefante')
    or die(
    "Connessione non riuscita: " . mysql_error());

    mysql_select_db('test') or die (mysql_error());

    $result=mysql_query($query,$connessione);
    grazie.
    Ultima modifica di ramboia : 06-06-2013 alle ore 12.56.30 Motivo: Usa i tag di codice quando ne riporti ampi stralci...

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Se il codice che usi è esattamente quello riportato sopra, c'è un errore nella composizione della query: controlla bene di avere aperto e chiuso correttamente apici e doppi apici.

    (per inciso, se avessi usato i tag PHP come ho modificato il post io, da come si colora il codice forse potevi già scoprire che qualcosa non andava)

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    scusa, era la prima volta che postavo..
    comunque grazie che mi hai risposto subito, quello che hai notato tu purtroppo era solo un errore di copiatura dal mio programma..infatti non è cambiato nulla .

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Adesso che riguardo un po' meglio il codice, c'è un'altra cosa strana: stai componendo la query all'interno di un ciclo (e ci riscrivi sopra ogni volta), ma la esegui una volta sola fuori dal ciclo.

    Prova a spostare:
    - la connessione (mysql_connect) e la selezione database (mysql_select_db) prima del ciclo
    - l'esecuzione della query (mysql_query) all'interno del ciclo

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    la connessione e la selezione database le ho messe sopra la funzione del ciclo...
    non so se è quello che intendevi in questo modo ma comunque il problema non è il ciclo for che non va anzi lo dimostrano il controllo con le echo, ma, se ci mettessi solo dei dati a mano nella insert (esempio: invece di '"$item->category"' metto 'category') non restituisce il testo come di norma.





    Codice PHP:
    $connessione = mysql_connect('localhost', 'root', 'elefante')
    or die(
    "Connessione non riuscita: " . mysql_error());

    mysql_select_db('test') or die (mysql_error());


    //questa è la funzione che cicla i miei dati dell'array qa,echo mi servono da controllo e fuzionano
    function bulkLoad($data) {
    if (
    $data == null) return;
    $count = count($data);
    $count = 2;
    for (
    $i = 0; $i < $count; $i++) {
    $item = $data[$i];



    $query = "INSERT INTO qa(category, url, title, answer, post_date) VALUES ('".$item->category."','".$item->url."', '".$item->title."', '".$item->answer')";

    echo $item->category;
    echo "<br />";
    echo $item->url;
    echo "<br />";
    echo $item->title;
    echo "<br />";
    echo $item->answer;
    echo "<br />";
    }
    }
    $url_flux_rss = '
    http://fr.answers.com/Q/Special:RSS&tid=5020&answered=true';
    $qa = getCategoryQA($url_flux_rss);
    bulkLoad($qa);
    //var_dump($qa);



    $result=mysql_query($query,$connessione);

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Veramente ti avevo detto anche un'altra cosa...
    - l'esecuzione della query (mysql_query) all'interno del ciclo
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Predefinito

    scusami se non riesco a ripondere subito. allora ho fatto così come mi avevi chiesto, non sapendo dove lasciare la mysql_close() ti posto la modifica al codice e l'errore


    Codice PHP:

    $connessione
    = mysql_connect('localhost', 'root', 'elefante')
    or die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db('test') or die (mysql_error());
    function
    bulkLoad($data) {
    if (
    $data == null) return;
    $count = count($data);
    $count = 2;
    for (
    $i = 0; $i < $count; $i++) {
    $item = $data[$i];

    $query = mysql_query("INSERT INTO qa(category, url, title, answer, post_date) VALUES ('".$item->category."','".$item->url."', '".$item->title."', '".$item->answer."')",$connessione)
    or die (
    mysql_error());

    echo
    $item->category;
    echo
    "<br />";
    echo
    $item->url;
    echo
    "<br />";
    echo
    $item->title;
    echo
    "<br />";
    echo
    $item->answer;
    echo
    "<br />";
    }
    }






    $url_flux_rss = 'http://fr.answers.com/Q/Special:RSS&tid=5020&answered=true';
    $qa = getCategoryQA($url_flux_rss);
    bulkLoad($qa);
    //var_dump($qa);
    mysql_close($connessione);
    errore
    Codice PHP:
    warning: mysql_query() expects parameter 2 to be resource, null given ---> nella riga mysql_close($connessione)

    e

    Notice
    : Undefined variable: connessione -->nella riga mysql_close($connessione)
    Ultima modifica di ramboia : 07-06-2013 alle ore 09.22.52

  8. #8
    Guest

    Predefinito

    aiuto pls..

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da ramboia Visualizza messaggio
    scusami se non riesco a ripondere subito.
    Magari anche gli altri non riescono a rispondere subito ...

  10. #10
    Guest

    Predefinito

    hai ragione, era solo un messaggio per non essere dimenticato
    infatti tu hai risposto

  11. #11
    Guest

    Predefinito

    hai provato a inserire la query in una variabile invece che scriverta dentro la funzione?
    poi prova a stampare tale variabile e vedi cosa effettivamente viene passato a mysql come query da eseguire

    anche perchè in effetti vedo che inserisci 5 campi ma dopo il values hai solo 4 variabili manca il valore del post_data
    Ultima modifica di dargoole : 07-06-2013 alle ore 12.14.52

  12. #12
    Guest

    Predefinito

    si allora sono andato a modificare 2 cose e come mi hai chiesto ho fatto anche delle stampe,le cose che ho cambiato:spostato codice connessione all'interno e aggiunto my_sql_rea_escape_string


    qui il codice

    Codice PHP:
    function bulkLoad($data) {
    $connessione = mysql_connect('localhost', 'root', 'elefante') ;

    if(
    $connessione == true){


    mysql_select_db('test') or die (mysql_error());
    if (
    $data == null) return;
    $count = count($data);
    $count = 2;
    for (
    $i = 0; $i < $count; $i++) {
    $item = $data[$i];

    $query ="INSERT INTO qa(category, url, title, answer)
    VALUES ('"
    .mysql_real_escape_string($item->category)."',
    '"
    .mysql_real_escape_string($item->url)."',
    '"
    .mysql_real_escape_string($item->title)."',
    '"
    .mysql_real_escape_string($item->answer)."')";

    $result=mysql_query($query);
    var_dump($query);
    var_dump($result);



    echo
    $item->category;
    echo
    "<br />";
    echo
    $item->url;
    echo
    "<br />";
    echo
    $item->title;
    echo
    "<br />";
    echo
    $item->answer;
    echo
    "<br />";
    }
    mysql_close($connessione);
    }}




    $url_flux_rss = 'http://fr.answers.com/Q/Special:RSS&tid=5020&answered=true';
    $qa = getCategoryQA($url_flux_rss);
    bulkLoad($qa);
    e qui errori

    Codice PHP:
    stampa della $query a posto ma stampa $result restituisce
    bool
    (false)
    Ultima modifica di ramboia : 07-06-2013 alle ore 12.42.28

  13. #13
    Guest

    Predefinito

    la query dovresti provarla con un semplice echo, var_dump è per gli array credo, cmq e se esegui la query tramite phpmyqdmin viene eseguita correttamente?

    p.s.
    mysql_query($query);

    manca la connessione al db:

    mysql_query($query,$connessione);
    Ultima modifica di dargoole : 07-06-2013 alle ore 12.44.01

  14. #14
    Guest

    Predefinito

    l'avevo già fatto prima e non mi dava errori ,adesso invece da questo errore:

    Codice PHP:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$query =mysql_query("INSERT INTO qa(category, url, title, answer) VALUES ('"' at line 1

    ma siccome non sono bravo ditemi se quello che ho aggiunto in phpmyadmin è corretto o ci sono qualche errori:
    Codice PHP:
    $query =mysql_query("INSERT INTO qa(category, url, title, answer)
    VALUES ('"
    .mysql_real_escape_string($item->category)."',
    '"
    .mysql_real_escape_string($item->url)."',
    '"
    .mysql_real_escape_string($item->title)."',
    '"
    .mysql_real_escape_string($item->answer)."')",$connessione);
    altrimenti quale è il problema secondo voi?

  15. #15
    Guest

    Predefinito

    no su phpmyadmin devi provare quello che ti stampa la variabile query tramite l'echo...non il codice php

  16. #16
    Guest

    Predefinito

    scusate ma non posso aggiornarlo fino a lunedí,siccome lo stavo provando da un'altra parte e da casa ho problemi con il server che nn risponde(uso xampp).
    l'ultima cosa ke sono riuscito a controllare era la stampa ke ha restituito bool (true) per la$result
    Adesso devo aspettare fino a lunedí per rivedere il codice.

    qualcuno sa dirmi cortesemente poi cosa devo scrivere in phpmyadmin per vedere se la query ha problemi?



    grazie

  17. #17
    Guest

    Predefinito

    Ho fatto eseguire la query a phpmyadmin
    questa:
    Codice PHP:
    INSERT INTO qa(category, url, title, answer)
    VALUES (
    '".mysql_real_escape_string($item->category)."',
    '".mysql_real_escape_string($item->url)."',
    '".mysql_real_escape_string($item->title)."',
    '".mysql_real_escape_string($item->answer)."');
    Risultato mi restituisce quello che ho scritto in "VALUES" e non il suo contenuto.
    Avete qualche idea?

    grazie

  18. #18
    Guest

    Predefinito

    ok allora ho risolto non so come, non ho modificato niente adesso però faccio un post per un'altra domanda e ci rimetto il codice--riguarda la "mysql_query delete e timestamp problema".

    grazie per l'aiuto!!

Regole di scrittura

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