Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    non mi modifica i record del db

    Salve a tutti avrei un problema con la modifica dei record di un database, il problema è questo:
    c'è un primo file che effettua uns lista di tutti i record presenti nel db, posto il file:
    modCan.php
    <html>
    <head>
    <title>@@@@@ amministrazione - modifica e cancellazione veicoli @@@@</title>
    </head>
    <body>
    <?php
    $db_host="localhost";
    $db_db="veicoli";
    $db_user="";
    $db_pw="";
    $db_slc = mysql_connect($db_host,$db_user,$db_pw);//connessione al server
    $db_cnx= mysql_select_db($db_db, $db_slc);
    if(!$db_cnx){
    echo 'Errore connessione nn riuscita'.mysql_error().'per favore riporova più tardi';
    }
    else{
    $query="select * from veicoli";//questa è la query di selezione
    $dbResult = mysql_query($query);

    $AffectedRows = mysql_num_rows($dbResult);//array che mi dice di quante righe è formato il mio db
    print"<table border=\"1\">\n";//qua comincia a stampare una tabella contenete i risultati del db
    for($index=0; $index<$AffectedRows; $index++)
    {
    while($row = mysql_fetch_array($dbResult, MYSQL_ASSOC)){
    $id = $row["id"];
    $marca = $row["marca"];
    $modello = $row["modello"];
    $km = $row["km"];
    $cat = $row["categoria"];
    $pz = $row["pz"];
    $anno =$row["anno"];
    $opt =$row["optional"];
    $ft1 =$row["ft1"];
    $ft2 =$row["ft2"];
    $ft3 =$row["ft3"];
    $ft4 =$row["ft4"];
    echo "<tr>";
    echo "<td>$id</td>";
    echo "<td><a href=\"modify.php?id=$id\">Modifica</a></td>";
    echo "<td><a href=\"canc.php?id=$id\">Cancella</a></td>";
    echo "<td>$marca</td>";
    echo "<td>$modello</td>";
    echo "<td>$km</td>";
    echo "<td>$cat</td>";
    echo "<td>$pz</td>";
    echo "<td>$anno</td>";
    echo "<td>$opt</td>";
    echo "<td>$ft1</td>";
    echo "<td>$ft2</td>";
    echo "<td>$ft3</td>";
    echo "<td>$ft4</td>";
    echo"</tr>";

    }

    }
    mysql_close($db_slc);
    print"</table>\n";
    }
    ?>
    </body>
    </html>

    successivamente da questo file si può scegliere di fare la cancellazione o la modifica dei record, solo che mentre la cancellazione va a buon fine, la modifica no, non riesco a modificare il record, mi dà buca, premesso che da un file all'altro avviene il passaggio di id, qui di seguito vi posto il file:
    <html>
    <head>
    <title>!!!!! M O D I F I C A !!!!!!</title>
    </head>
    <body>
    <?php
    $db_host="localhost";
    $db_db="veicoli";
    $db_user="";
    $db_pw="";
    $confirm = $_POST['confirm'];
    $id = $_POST['id'];
    if ($confirm)
    {
    $db_slc = mysql_connect($db_host,$db_user,$db_pw);//connessione al server
    $db_cnx= mysql_select_db($db_db, $db_slc);
    if(!$db_cnx){
    echo 'Errore connessione nn riuscita'.mysql_error().'per favore riporova più tardi';
    }
    else{
    if(get_magic_quotes_gpc()){//evita sql injection
    $qstring = stripslashes($id);
    }
    $purchase_id=mysql_real_escape_string($id);
    $query = "select * from veicoli where id='$purchase_id'";
    $dbResult = mysql_query($query);
    $AffectedRows = mysql_num_rows($dbResult);
    if ($AffectedRows==0){
    echo"<h3>non ci sono record con i criteri selezionati</h3>";
    }
    else{
    mysql_data_seek($dbResult, 0);
    $row = mysql_fetch_row($dbResult);
    print("<table>");
    print("<form method=\"post\"action=\"{$_SERVER['PHP_SELF']}\">");
    foreach($row as $k=>$v)
    {
    $myfield= mysql_fetch_field($dbResult, $k);
    print("<tr><td>$myfield->name</td>");
    print("<td><input ttype=\"text\" value=\"".$v."\" name=\"". $myfield->name."\" size=\"100\" maxlength=\"100\"></td></tr>");
    }
    print("<tr><td colspan=\"2\"><input type=\"submit\ value=\"conferma modifiche\"></td></tr> ");
    print("<input type=\"hidden\" name=\"confirm\" value=\"1\">");
    print("</form>");
    print("</table>");

    mysql_free_result($dbResult);
    mysql_close($db_slc);
    }

    }
    }
    else{
    $marca=$_POST['marca'];
    $modello=$_POST['modello'];
    $km=$_POST['km'];
    $cat=$_POST['categoria'];
    $pz=$_POST['pz'];
    $anno=$_POST['anno'];
    $opt=$_POST['optional'];
    $ft1=$_POST['ft1'];
    $ft2=$_POST['ft2'];
    $ft3=$_POST['ft3'];
    $ft4=$_POST['ft4'];
    $query="update veicoli set marca=\"$marca\","."modello=\"$modello.\","."km=\" $km.\","."categoria=\"$cat.\","."pz=\"$pz.\","."an no=\"$anno.\","."optional=\"$opt.\","."ft1=\"$ft1. \","."ft2=\"$ft2.\","."ft3=\"$ft3.\","."ft4=\"$ft4 .\","."where id=$id";
    $dbResult= mysql_query($query);
    $AffectedRows = mysql_affected_rows($db_slc, $db_slc);
    if ($AffectedRows !=0)
    {
    print("<h3> Record aggiornato!!!!</h3>");
    print("<h3><a href=\"modCan.php\">torna alla lista</a></h3>");
    }
    mysql_close($db_slc);
    }
    ?>
    </body>
    </html>
    vi chiedo cortesemente di aiutarmi in quanto è tutta l'estate che ci sbatto la testa ma non riesco avenirne a capo. Grazie

  2. #2
    L'errore standard, in questi casi, è sempre nella query di modifica

    $query="update veicoli set marca=\"$marca\","."modello=\"$modello.\","."km=\" $km.\","."categoria=\"$cat.\","."pz=\"$pz.\","."an no=\"$anno.\","."optional=\"$opt.\","."ft1=\"$ft1. \","."ft2=\"$ft2.\","."ft3=\"$ft3.\","."ft4=\"$ft4 .\","."where id=$id";
    al volo mi sembra che siano errori nell'uso delle virgolette, quindi sostituisci così

    $query = "UPDATE veicoli SET marca='$marca', modello='$modello' ..... e così via fino a .... WHERE id='$id'";
    Glue Labs
    Makes extraordinary things
    www.glue-labs.com/

  3. #3
    Niente ti posto la query:
    $query="update veicoli set marca='$marca', modello='$modello', km='$km', categoria='$cat',...,ft4='$ft4' where id='$id'";
    di tutto punto il server mi risponde con i seguenti messaggi:
    undefined index: confirm in c:\...\modify.php on line
    undefined index: id in c:\...\modify.php on line
    undefined index: marca in c:\...\modify.php on line
    undefined index: modello in c:\...\modify.php on line
    warning mysql_affected_rows() expects at most 1 parameter, 2 given in c:....
    undefined variable:db_slc
    warning mysql_close()

    Massimo sconforto!!!! nn sò ke fare

  4. #4
    Prova così:

    $query = "UPDATE veicoli SET marca='".$marca."', modello='".$modello."' ..... e così via fino a .... WHERE id='".$id."'";
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  5. #5
    Pare ci siano errori nella dichiarazione delle tabelle... Come se non le trovasse. Prova a controllare il db connect e lo schema. Banalmente... I nomi tabella son corretti?
    Glue Labs
    Makes extraordinary things
    www.glue-labs.com/

  6. #6
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306

    Re: non mi modifica i record del db

    ma se metti un bel "or die (mysql_error())" in tutte le query cosa ti dice?

  7. #7
    niente, nothing, mi da la solita serie di errori, ho scritto la query come mi avevi detto ma niente, poi nn credo ke sia un problema di connessione cn le tabelle e realitvo db, xkè la cancellazione e l'inserimento me li fa senza problemi, l'unica procedura ke mi dà errore è la modifica, help me!!!!!

  8. #8
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    leggere questi files è un po confusionario.....cerchiamo di mettere un pochino di ordine magari così ci tiriamo fuori i piedi. Crea un file che si chiama conn.php e ci metti dentro le istruzioni per la connessione:
    codice:
     
    <?php 
    $db_host="localhost"; 
    $db_db="veicoli"; 
    $db_user=""; 
    $db_pw="";   
    $db_slc = mysql_connect($db_host,$db_user,$db_pw) or die (mysql_error()); 
    $db_cnx= mysql_select_db($db_db, $db_slc)  or die (mysql_error()); ?>
    includilo all'inizio di ogni altro file e modifica di conseguenza gli script.....

    nel file di amministrazione ho letto questo:
    codice:
    echo "<td><a href=\"modify.php?id=$id\">Modifica</a></td>"; 
    echo "<td><a href=\"canc.php?id=$id\">Cancella</a></td>";
    per cui nel file modify.php la variabile id non la devi recuperare con $_POST ma con $_GET

    e per recuperarla si potrebbe fare qualcosa tipo questo:
    codice:
    if(isset($_GET['id'])) {
     $id=(int)$_GET['id'];
    }else{
     $id=0;
    }
    sicuramente nella tua tabella record con id=0 non ce ne sono.....tutto il pappello che hai scritto per "pulire" quella variabile lo puoi cancellare: basta tipizzarla int.

    ora proviamo ad aggiornare un solo campo e vediamo come va:

    codice:
    $query=("update veicoli set marca="$marca" where id='$id'");
    echo "$query
    ";
    $sql=mysql_query($query, $db_slc) or die (mysql_error());
    così ti scrive a video anche la query....

  9. #9
    posto qui di seguito gli script ma il risultato è invariato
    cnx_db.php
    <?php
    $db_host="localhost";
    $db_db="veicoli";
    $db_user="root";
    $db_pw="";
    $db_slc = mysql_connect($db_host,$db_user,$db_pw);//connessione al server
    $db_cnx= mysql_select_db($db_db)or die (mysql_error());
    ?>
    modify.php
    <html>
    <head>
    <title>!!!!! M O D I F I C A !!!!!!</title>
    </head>
    <body>
    <?php

    $confirm = $_POST['confirm'];
    if (isset($_GET['id'])){
    $id =(int) $_GET['id'];}else{$id=0;}
    if ($confirm)
    {
    include('cnx_db.php');
    if(!$db_cnx){
    echo 'Errore connessione nn riuscita'.mysql_error().'per favore riporova più tardi';
    }
    else{
    // if(get_magic_quotes_gpc()){//evita sql injection
    // $qstring = stripslashes($id);
    // }
    // $purchase_id=mysql_real_escape_string($id);
    $query = "select * from veicoli where id='".$id."'";
    $dbResult = mysql_query($query);
    $AffectedRows = mysql_num_rows($dbResult);
    if ($AffectedRows==0){
    echo"<h3>non ci sono record con i criteri selezionati</h3>";
    }
    else{
    mysql_data_seek($dbResult, 0);
    $row = mysql_fetch_row($dbResult);
    print("<table>");
    print("<form method=\"post\"action=\"{$_SERVER['PHP_SELF']}\">");
    foreach($row as $k=>$v)
    {
    $myfield= mysql_fetch_field($dbResult, $k);
    print("<tr><td>$myfield->name</td>");
    print("<td><input ttype=\"text\" value=\"".$v."\" name=\"". $myfield->name."\" size=\"100\" maxlength=\"100\"></td></tr>");
    }
    print("<tr><td colspan=\"2\"><input type=\"submit\ value=\"conferma modifiche\"></td></tr> ");
    print("<input type=\"hidden\" name=\"confirm\" value=\"1\">");
    print("</form>");
    print("</table>");

    mysql_free_result($dbResult);
    mysql_close($db_slc);
    }

    }
    }
    else{
    $marca=$_POST['marca'];
    $modello=$_POST['modello'];
    $km=$_POST['km'];
    $cat=$_POST['categoria'];
    $pz=$_POST['pz'];
    $anno=$_POST['anno'];
    $opt=$_POST['optional'];
    $ft1=$_POST['ft1'];
    $ft2=$_POST['ft2'];
    $ft3=$_POST['ft3'];
    $ft4=$_POST['ft4'];
    $query="update veicoli set marca='".$marca."' where id='$id'";
    // ,modello='".$modello."',km='".$km."',categoria='". $cat."',pz='".$pz."',anno='".$anno."',optional='". $opt."',ft1='".$ft1."',ft2='".$ft2."',ft3='".$ft3. "',ft4='".$ft4."' where id='$id'";
    $dbResult= mysql_query($query) or die (mysql_error());
    $AffectedRows = mysql_affected_rows($db_cnx, $db_slc);
    if ($AffectedRows !=0)
    {
    print("<h3> Record aggiornato!!!!</h3>");
    print("<h3><a href=\"modCan.php\">torna alla lista</a></h3>");
    }
    mysql_close($db_slc);
    }
    ?>
    </body>
    </html>

    e come risultato di errore mi da:
    Notice: Undefined index: confirm in C:\xampp\htdocs\autopalmitessa\modify.php on line 8

    Notice: Undefined index: marca in C:\xampp\htdocs\autopalmitessa\modify.php on line 51

    Notice: Undefined index: modello in C:\xampp\htdocs\autopalmitessa\modify.php on line 52

    Notice: Undefined index: km in C:\xampp\htdocs\autopalmitessa\modify.php on line 53

    Notice: Undefined index: categoria in C:\xampp\htdocs\autopalmitessa\modify.php on line 54

    Notice: Undefined index: pz in C:\xampp\htdocs\autopalmitessa\modify.php on line 55

    Notice: Undefined index: anno in C:\xampp\htdocs\autopalmitessa\modify.php on line 56

    Notice: Undefined index: optional in C:\xampp\htdocs\autopalmitessa\modify.php on line 57

    Notice: Undefined index: ft1 in C:\xampp\htdocs\autopalmitessa\modify.php on line 58

    Notice: Undefined index: ft2 in C:\xampp\htdocs\autopalmitessa\modify.php on line 59

    Notice: Undefined index: ft3 in C:\xampp\htdocs\autopalmitessa\modify.php on line 60

    Notice: Undefined index: ft4 in C:\xampp\htdocs\autopalmitessa\modify.php on line 61
    No database selected
    uffa mi sento proprio una capra!!!! dove sbaglio

  10. #10
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    eppure basterebbe leggere!
    ........
    No database selected
    ecco l'errore!

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.