Verificare numar in Nume in SQL
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
giulian9
- Mesaje: 44
Verificare numar in Nume in SQL
Salut , am urmatorul cod :
Cod: Selectaţi tot
$v=1;
$text_knr = "Client-".$nrclient."-".$v;
$caut = "SELECT NrClient FROM `Lager` WHERE NrClient Like '$text_knr'";
$gasit = mysqli_query($conn,$caut);
$count = mysqli_num_rows($gasit);
if ( $count > 0 ) {
while ($row = $gasit->fetch_assoc()) {
if ($row['NrClient '] == $text_knr ) {
$v++;
$j=sprintf("%02d",$v);
$knr_last = "Client-".$nrclient."-".$v;
}
}
}
else {
$knr_last = $text_knr;
}
Resultat : Daca nu am nici o inregistrare imi insereaza/afiseaza : Client-NrClient-1
.... INSERT
Problema care o am e ca atunci cand inregistrarea e deja acolo: Client-NrClient-1 conform scriptului de mai sus imi creste valoarea $v respectiv Client-NrClient-2. Insa cam aici ramane pentru ca nu stiu cum sa pun astea intr-o bucla

sa intreb daca inregistrarea e deja sa creasta contorul. De ex daca am Client-NrClient-10 sa vada ca e deja in baza de date si sa creasca valoarea,eventual daca o pozitie e libera sa adauge acolo.
Momentan ma chinui cu o bucla do while care nu vrea sa dea rezultate ....
Multumesc .
MarPlo
Mesaje: 4343
Salut,
Incearca verificarea if() cu
preg_match(), ca in urmatorul exemplu:
Cod: Selectaţi tot
$nrclient = 'NrClient';
$row['NrClient'] = 'Client-'.$nrclient.'-9';
if(preg_match('/Client-'.$nrclient.'-([0-9]+)/', $row['NrClient'], $mt)){
$v =$mt[1];
var_dump($v); // 9
//Restul codului...
}
giulian9
Mesaje: 44
Salut , metoda propusa de tine nu am reusit sa o fac sa functioneze asa cum trebuia. Prezint mai jos, solutia gasita, exact acea bucla do while:
Cod: Selectaţi tot
function id_client($input_data) {
$v=1;
do {
$text_knr = "Client-" . $nrclient . "_" . $v;
$sql = "Select Id from Lager where User = $text_knr ";
$result = mysqli_query($intreaba,$sql);
$row = mysqli_fetch_assoc($result) ; // eventual calculare row (mysqli_num-rows ) => $row > 1
$v++;
} while ($row > 0)
return $text_knr ;
}