Tienes muchas formas de hacerlo pero solo una de correcta
Primero usando un campo autoincremental no es necesario que se introduzca previamente el numero ya que la propia base de datos al insertar el pedido ya incrementara el valor del identificador, esto te asegura que nunca tendras un identificador repetido.
Segundo usar la funcion MAX
Select Max(numOrden) from tutabla
una vez obtenido lo incrementas.
así debes controlar las transacciones, puesto que si se intercalan dos inserciones podrian producirse duplicados
Usuario 1 Select Max(numOrden) from tutabla
max+1
Usuario 2 Select Max(numOrden) from tutabla
max+1
Usuario 1 Insert... usando max+1
Usuario 2 Insert... usando max+1
Las dos inserciones se harian con el mismo numero...
Luego tienes la funcion
Last_insert_id() para saber el id de la ultima inserción...
Siempre debes controlar que las dos querys (INSERT / SELECT para consultar el numero) sean coherentes es decir que la segunda responda con el valor producido por la primera o a la inversa.
Control de
transacciones