Pagina 1 din 1
Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de giulian9
Salut , intrucat cunostintele nu ma ajuta , sunt nevoit sa cer ajutor celor care sunt mai
.
Am urmatorul cod :
Cod: Selectaţi tot
$i=1;
$numar="$rma1$i";
$result=1;
while ( $result ) { //sa fie $result == true :?: ar rula la infinit cred sau...
$sql = "SELECT nummer FROM databank WHERE nummer=$nummer";
$result = mysqli_query($conn,$sql);
if ($result) {
echo "Numarul va fi generat din nou";
$i=$i+1;
$nummer="$rma1$i";
echo "Numarul nou este:$nummer";
}
}
$sql = "UPDATE databank SET nummer = $nummer WHERE id = $id";
if (!$conn->query($sql)) {
echo 'Error: '. $conn->error;
Ceea ce vreau sa fac e sa generez un numar ( are data curenta + nr de ordine 1,2,3) sa il verific in baza de date daca exista si daca da sa cresc valoarea cu o unitate . Pentru o singura apelare functioneaza , insa ma gandesc ca ar trebui sa il pun intr-o bucla .
Aici duc lipsa de
si nu imi dau seama cum as putea face; ms anticipat.
- Edit:
Am folosit cautarea in tabel ce e aici in tutorial insa tot nu arata cum ar trebuie , nr de inreg nu e in ordine crescatoare.
Cod: Selectaţi tot
$sql = "SELECT nummer FROM databank WHERE nummer LIKE $nummer";
$result = mysqli_query($conn,$sql);
$count = mysqli_num_rows($result);
if ( $count > 0 ) {
echo "Generare nr de inreg ";
$i=$i+1;
$nummer="$rma1$i";
echo "Numarul este :$nummer";
dupa care update in baza de date ...
Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de MarPlo
Salut
Personal nu prea am inteles ce vrei sa faci, cum ai in baza de date si ce /cum vrei sa rezulte.
Daca vrei rezultatele sa fie returnate in ordine crescatoare dupa "nummer", poti folosi ORDER BY:
Cod: Selectaţi tot
$sql = "SELECT nummer FROM databank WHERE nummer LIKE $nummer ORDER BY nummer";
Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de giulian9
Baza de date are mai multe inregistrari , cand un angajat apasa butonul de confirmare , un numar de inregistrare trebuie sa fie generat de forma: 201702071/201702072/201702073 ( date('Ymd')1 ) si atribuit unei linii . Reusesc sa generez doar primul numar . Practic eu trebuie sa verific daca nr nu este deja atribuit iar daca este ,noul numar de inreg sa creasca cu o unitate, de asta foloseam $i=$i+1 ....insa nu imi dau seama ce bucla sa folosesc ca sa fac cautarea in mysql si daca e gasit sa ii creasca valoarea , daca nu ramane acelasi .
Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de MarPlo
Poti sa specifici in UPDATE sa creasca valoarea daca acel numar e deja; fara sa fie nevoie de SELECT anterior.
Cam asa:
Cod: Selectaţi tot
$sql="UPDATE databank SET nummer = (nummer +1) WHERE nummer = $nummer";
Re: Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de giulian9
Ca sa se inteleaga cam ce vreau sa fac :
Cod: Selectaţi tot
$rma1=date('Ymd');
$i=1;
$nummer="$rma1$i";
$sql = "SELECT nummer FROM databank WHERE nummer LIKE $nummer "; // nummer=$nummer
$result = mysqli_query($conn,$sql);
$count = mysqli_num_rows($result);
if ( $count > 0 ) {
echo "Generare numar.";
$i=$i+1;
$nummer="$rma1$i";
echo "Numarul este: $nummer"; //test
$sql = "UPDATE databank SET nummer = $nummer WHERE id = $id";
if (!$conn->query($sql)) {
echo 'Error: '. $conn->error; } } else {
echo "Numarul de inreg este : $nummer"; //test
$sql = "UPDATE databank SET nummer = $nummer WHERE id = $id";
if (!$conn->query($sql)) {
echo 'Error: '. $conn->error; }}
}
Generare si Incrementare numar inregistrare in baza de date
Scris: Mar Feb 07, 2017
de MarPlo
Vezi daca iti e de folos acest cod, poate ca idee.
Cod: Selectaţi tot
$rma1=date('Ymd');
//select all rows with nummer=$rma1(NR)
$sql = "SELECT id, nummer FROM databank WHERE nummer LIKE '$rma1%' ORDER BY nummer";
$result = mysqli_query($conn,$sql);
$count = mysqli_num_rows($result);
if($count > 0){
while($row = $result->fetch_assoc()){
//get and increment $nr in nummer in $row, update it
$nr=str_ireplace($rma1, '', $row['nummer'])+1;
$nummer="$rma1$nr"; //new number
echo "<br>Numarul este: $nummer"; //test
$sql = "UPDATE databank SET nummer = $nummer WHERE id =". $row['id'];
if (!$conn->query($sql)) echo 'Error: '. $conn->error;
}
}
Sau acesta:
Cod: Selectaţi tot
$rma1=date('Ymd');
$i=1;
$nummer="$rma1$i";
//select all rows with nummer=$rma1(NR)
$sql = "SELECT id, nummer FROM databank WHERE nummer LIKE '$rma1%' ORDER BY nummer";
$result = mysqli_query($conn,$sql);
$count = mysqli_num_rows($result);
if($count > 0){
while($row = $result->fetch_assoc()){
//if $nummer is in $row, update it
if($row['nummer'] ==$nummer){
echo "Generare numar.";
$i++;
$nummer="$rma1$i";
echo "Numarul este: $nummer"; //test
$sql = "UPDATE databank SET nummer = $nummer WHERE id =". $row['id'];
if (!$conn->query($sql)) echo 'Error: '. $conn->error;
}
}
}
Re: Generare si Incrementare numar inregistrare in baza de date
Scris: Mie Feb 08, 2017
de giulian9
Multumesc mult . Exact secventa care lipsea , acel "while' . Stima Julian