Pagina 1 din 1

Probleme Update baza de date

Scris: Dum Oct 28, 2012
de alexinio3d
Salutare
Am incercat sa fac un site de fifa, dar m-am oprit la panoul de administrare atunci cand trebuie sa modific datele de la echipe ( adica victorii, egaluri, meciuri etc. ).
Siteul are baza de date cu 2 tabele : "clasament_echipa" unde sunt datele de la clasament ( echipa, victoriile, egalurile, meciurile etc . ) si "admin_user" unde e contu de administrare.
Eu acuma as vrea sa stiu ce am gresit la scriptul de update de nu-mi face update-ul la datele din "clasament_echipa".
Aici aveti partea de cod php unde ar trebui sa faca update la baza de date:

Cod: Selectaţi tot

<?php
// Variabile-----------------------
if(!isset($_POST['echipa'])){ 
    $echipa = htmlspecialchars($echipa);
} else { 
    $echipa = $_POST['echipa'];
}

if(!isset($_POST['meciuri'])){ 
    $meciuri = htmlspecialchars($meciuri); 
} else { 
    $meciuri = $_POST['meciuri'];
}

if(!isset($_POST['victori'])){ 
    $victori = htmlspecialchars($victori);
} else { 
    $victori = $_POST['victori'];
}

if(!isset($_POST['egaluri'])){ 
    $egaluri = htmlspecialchars($egaluri);
} else { 
    $egaluri = $_POST['egaluri'];
}

if(!isset($_POST['infrangeri'])){ 
    $infrangeri = htmlspecialchars($infrangeri);
} else { 
    $infrangeri = $_POST['infrangeri'];
}

if(!isset($_POST['goluri_date'])){ 
    $goluri_date = htmlspecialchars($goluri_date);
} else { 
    $goluri_date = $_POST['goluri_date'];
}

if(!isset($_POST['goluri_luate'])){ 
    $goluri_luate = htmlspecialchars($goluri_luate);
} else { 
    $goluri_luate = $_POST['goluri_luate'];
}

if(!isset($_POST['golaveraj'])){ 
    $golaveraj = htmlspecialchars($golaveraj);
} else { 
    $golaveraj = $_POST['golaveraj'];
}

if(!isset($_POST['puncte'])){ 
    $puncte = htmlspecialchars($puncte);
} else { 
    $puncte = $_POST['puncte'];
}

$date = date('d.m.Y');
$ora  = date('H:i');

// ---------------------------------
    if(empty($_POST['puncte'])) { // Verificare daca ii specificat puncte
// Daca sa specificat puntele atunci se va face update la baza de date
mysql_query("UPDATE clasament_echipa SET meciuri=$meciuri, victori=$victori, egaluri=$egaluri, infrangeri=$infrangeri, goluri_date=$goluri_date, goluri_luate=$goluri_luate, golaveraj=$golaveraj, puncte=$puncte, data=$data, ora=$ora WHERE echipa=$echipa");
//Mesajul dupa ce sia facut update baza de date
$mesaj = '<center><div class="alert alert-success">S-a updatat baza de date. Va multumim.<br /><br />Clasamentu il puteti vedea <a href="./clasament.php">aici</a><br />Pentru a face alte update-uri la clasament folositi urmatorul <a href="./admin.php">link</a></div></center>';
}
else{ $mesaj = '<center><div class="alert alert-error"><h4>Eroare:</h4> Nu ati specificat punctaju!<br /><br />Intoarcete la pagina de <a href="./admin.php">conectare</a></div></center>';}

print( $mesaj );
?>
Iar in urmatoru cod html si php, de unde sa selectezi echipa si sa treci datele dorite:

Cod: Selectaţi tot

<?php
//Conectare MySQL-----
require ('./config.php');
//--------------------
// Variabile
if(!isset($_POST['useradmin'])){ 
    $useradmin = "????";
} else { 
    $useradmin = $_POST['useradmin'];
} 

if(!isset($_POST['passadmin'])){ 
    $passadmin = "????"; 
} else { 
    $passadmin = $_POST['passadmin'];
}
// -------------------
// Verificam daca userul exista in DB !
$verificare_useradmin = "SELECT useradmin FROM user_admin WHERE useradmin = '$useradmin' AND passadmin = '$passadmin'";
$result_useradmin = mysql_query($verificare_useradmin);
if( mysql_num_rows($result_useradmin) == 0 ) { // Verificare useradmin
//Daca nu se potrivesc datele atunci urmatoarea linie il va atentiona ca datele nu-s bune
echo "<center><div class='alert alert-block'><h4>Warning!</h4>Userul sau parola sunt incorecte !<br /><br />Intoarcete la pagina de <a href='./admin.php'>conectare</a></div></center>";
}
//Daca datele sunt bune atunci va intra in panou
else {
?>
<form action="./update.php" method="post">
<table class="table table-hover">
         <tr class='info'><td class='echipa'>
         <select name="echipa">
                    <?php
                        $muta_la_utilizatorul=@mysql_query("SELECT * FROM `clasament_echipa` ORDER by `echipa`");
                            while($rand2=@mysql_fetch_array($muta_la_utilizatorul))
                            {
                            $echipa = $rand2['echipa'];
                                print("<option value='$echipa'>$echipa</option>");
                            }
                    ?>
                </select></td>
         <td class='meciuri'><center><font color="#FF0000"><b>M : </b></font><input name='meciuri' type='text' size='30' maxlength='3' style='width:20px' id='meciuri' class='tbox' /></center></td>
         <td class='victori'><center><font color="#FF0000"><b>V : </b></font><input name='victori' type='text' size='30' maxlength='3' style='width:20px' id='victori' class='tbox' /></center></td>
         <td class='egaluri'><center><font color="#FF0000"><b>E : </b></font><input name='egaluri' type='text' size='30' maxlength='3' style='width:20px' id='egaluri' class='tbox' /></center></td>
         <td class='infrangeri'><center><font color="#FF0000"><b>I : </b></font><input name='infrangeri' type='text' size='30' maxlength='3' style='width:20px' id='infrangeri' class='tbox' /></center></td>
         <td class='goluri_date'><center><font color="#FF0000"><b>GD : </b></font><input name='goluri_date' type='text' size='30' maxlength='3' style='width:20px' id='goluri_date' class='tbox' /></center></td>
         <td class='goluri_luate'><center><font color="#FF0000"><b>GP : </b></font><input name='goluri_luate' type='text' size='30' maxlength='3' style='width:20px' id='goluri_luate' class='tbox' /></center></td>
         <td class='golaveraj'><center><font color="#FF0000"><b>G : </b></font><input name='golaveraj' type='text' size='30' maxlength='3' style='width:20px' id='golaveraj' class='tbox' /></center></td>
         <td class='puncte'><center><font color="#FF0000"><b>Pct. : </b></font><input name='puncte' type='text' size='30' maxlength='3' style='width:20px' id='puncte' class='tbox' /></center></td></tr>
<?php
}
?>
</table>
<center><input name="submit" type="submit" value="Update" class="btn btn-primary" /></center>
</form>
Eu in codu de mai sus am vrut sa fac update-ul dupa echipa aleasa.

Probleme Update baza de date

Scris: Dum Oct 28, 2012
de MarPlo
Salut
Nu am stat sa studiez tot codul, prea mult. Dar daca nu iti da vreo eroare, ca indicatie, vezi ce sir cu date e trimis la MySQL, folosind "echo" la comanda SQL transmisa. Asa vezi daca lipseste ceva.
Eventual preiei s vreo posibila eroare de la MySQL, cu if (mysql_errno()).
De exemplu, ceva asa:

Cod: Selectaţi tot

$sql = "UPDATE clasament_echipa SET meciuri=$meciuri, victori=$victori, egaluri=$egaluri, infrangeri=$infrangeri, goluri_date=$goluri_date, goluri_luate=$goluri_luate, golaveraj=$golaveraj, puncte=$puncte, data=$data, ora=$ora WHERE echipa=$echipa";

echo $sql;         // afiseaza sirul trimis la baza de date

// trimite comanda si afiseaza eventuale erori MySQL
mysql_query($sql);
if (mysql_errno()) {
    echo '<br />'. mysql_error();
} 
- Daca sunt date de tip sir /text, ar trebui transmise intre ghilimele, asa:
$sql = "... echipa = '$echipa' ...";

Probleme Update baza de date

Scris: Dum Oct 28, 2012
de alexinio3d
Am scos <br /> si am pus in urmatoru fel codul tau:

Cod: Selectaţi tot

$sql = "UPDATE clasament_echipa SET meciuri=$meciuri, victori=$victori, egaluri=$egaluri, infrangeri=$infrangeri, goluri_date=$goluri_date, goluri_luate=$goluri_luate, golaveraj=$golaveraj, puncte=$puncte, data=$data, ora=$ora WHERE echipa=$echipa";

    echo $sql;         // afiseaza sirul trimis la baza de date

    // trimite comanda si afiseaza eventuale erori MySQL
    mysql_query($sql);
    if (mysql_errno()) {
        echo mysql_errno();
    } 
Si imi da urmatoarea eroare

Cod: Selectaţi tot

Notice: Undefined variable: data in C:\xampp\htdocs\fifa\include\update.php on line 61
UPDATE clasament_echipa SET meciuri=2, victori=2, egaluri=2, infrangeri=2, goluri_date=2, goluri_luate=2, golaveraj=2, puncte=2, data=, ora=15:56 WHERE echipa=Valencia1064
Acuma intrebarea ii dc la Valencia ii si numaru 1064 :-s ?? si cum pot face sa nu mai apara si acel 1064 .

Probleme Update baza de date

Scris: Dum Oct 28, 2012
de MarPlo
Dupa cum spune eroarea "Undefined variable: data in ..", nu e definita variabila $data.
Iar la date de tip sir /text, ar trebui transmise intre ghilimele, asa:

Cod: Selectaţi tot

$sql = "... echipa = '$echipa' ...";
Restul, nu stiu care-i prioblema.

Re: Probleme Update baza de date

Scris: Dum Oct 28, 2012
de alexinio3d
Am rezolvat problema :) .
Era cum ai zis tu ca trebuie pus intre ghilimele, dar am observat abea apoi ca era gresit trecut o coloana din baza de date :).
MarPlo iti multumesc frumos pentru ajutor :P .