Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57

    Select non prende niente dal DB

    Ciao ragazzi,
    devo fare una semplicissima select e restituire il risultato in una tabella.
    Il Db ha alcuni dati inseriti ma nonostante quello non mi ritorna niente come risultato.
    Codice:
    codice:
    // Create connection$conn= mysql_connect($servername, $username, $password) or die(mysql_error());
    
    
    //Select DB
    mysql_select_db($dbname) or die(mysql_error());
    
    
    $name = $_POST["name"];
    $sql = "SELECT * FROM wods WHERE name="."'".$name."'";
    
    
    mysql_query($sql) or die(mysql_error());
    
    
    $res=mysql_fetch_array($sql);
    
    
    echo'<table border="1" ><th>ID</th><th>Athlete Name</th><th>WOD Name</th><th>Date</th><th>Description</th><th>Time</th><th>Type</th><th>Notes</th>';
    while($res=mysql_fetch_array($sql))
    {
      echo'<tr><td>'.$res['id'].'</td><td>'.$res['name'].'</td><td>'.$res['wodname'].$res['date'].$res['description'].$res['time'].$res['type'].$res['notes'].'</td></tr>';
    }
    echo'</table>';
    
    
    mysql_close($conn);
    
    
    
    ?>
    Viene disegnata correttamente la tabella ma niente dati.
    La funzione php di inserimento funziona correttamente e i dati vengono inseriti nel DB.
    Non riesco a capire dove sia l'errore!

    Grazie in anticipo per l'aiuto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Stampa a video il contenuto di $query, vedi se la query è corretta, se è palesemente sbagliata, correggi, se ti sembra giusta, copia/incolla la query in phpmyadmin e vedi se funziona.

  3. #3
    mysql_fetch_array() prende in ingresso un recordset, non una stringa sql.
    Prova con
    Codice PHP:
    // Create connection$conn= mysql_connect($servername, $username, $password) or die(mysql_error());
    //Select DB
    mysql_select_db($dbname) or die(mysql_error());
    $name $_POST["name"];
    $sql "SELECT * FROM wods WHERE name="."'".$name."'";
    $res=mysql_query($sql);

    echo
    '<table border="1" ><th>ID</th><th>Athlete Name</th><th>WOD Name</th><th>Date</th><th>Description</th><th>Time</th><th>Type</th><th>Notes</th>';
    while(
    $row=mysql_fetch_array($res))
    {
      echo
    '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['wodname'].$row['date'].$row['description'].$row['time'].$row['type'].$row['notes'].'</td></tr>';
    }
    echo
    '</table>';

    mysql_close($conn); 

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57
    Grazie ragazi per l'aiuto, ho risolto!
    Il problema era appunto quello del my_fetch_array, dovevo mettere il risultato della query come parametro, non la query stessa.

    Grazie a tutti!
    Ultima modifica di idnob; 14-06-2015 a 12:17

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    $sql = "SELECT * FROM wods WHERE name="."'".$name."'"; ma il punto (rosso) a cosa serve? Cosi $sql = "SELECT * FROM wods WHERE name='".$name."'" hai provato?;
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Quote Originariamente inviata da idnob Visualizza il messaggio
    Grazie ragazi per l'aiuto, ho risolto!
    Il problema era appunto quello del my_fetch_array, dovevo mettere il risultato della query come parametro, non la query stessa.

    Grazie a tutti!
    dovresti anche fare un replace sugli apici nella query, altrimenti i nomi con l'apostrofo produrranno un errore:

    codice:
    $sql = "SELECT * FROM wods WHERE name="."'".addslashes($name)."'";
    

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 © 2024 vBulletin Solutions, Inc. All rights reserved.