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 ;
}

Subiecte similare