Проблем с взимане на id

patrik5

Registered
Здравйте, имам малко проблемче:)
Имам едно условие
If(ако е натиснат бутон Търси){
тук се изпълнява един селект попълва някакви таблици и
взима $prom= $row['id'];
echo $prom- изкарва номера на идто
}

До тук добре. Искам да си отворя друго условие
if($_POST['insert']{
и тук искам да взема стойността на $prom, но ми казва че е недекларирана.
}
Та въпроса е как да взема стойността на идито и да го пренеса във втория иф
Благодаря![/php]
 
По принцип не би трябвало да има проблем, но все пак дай малко повече и по-ясен код :lol:
 
$prom;
if (trim($_POST['kl_nom']) != "")
{
$list[] = "nom_faktura='" . mysql_real_escape_string(trim($_POST['kl_nom'])) . "'";
}

if(count($list)){
$tarsi=mysqli_query($connection, 'SELECT * FROM table1 WHERE '. implode(' AND ' , $list));

}
else{ echo'Да грешка';}

if(!$tarsi){
echo'error vav selecta';
}
echo'<table border="1">
<tr>
<td>Структура</td>
<td>Адрес</td>
<td>Телефон</td>
<td>ВИД</td>
<td>Допълнителни услуги</td>
<td>Цена</td>
<td>Цена с Нет</td>
<td>Структ по фактура</td>
<td>Клиентски номер</td>
<td>Номер на договор</td>
<td>Забележка</td>

</tr>';

while($row=$tarsi->fetch_assoc()){
echo'<tr>
<td>'.$row['struktura'].'</td>
<td>'.$row['adres'].'</td>
<td>'.$row['tel_nom'].'</td>
<td>'.$row['tip'].'</td>
<td>'.$row['dop_usluga'].'</td>
<td>'.$row['cena'].'</td>
<td>'.$row['cena_net'].'</td>
<td>'.$row['strukt_faktura'].'</td>
<td>'.$row['nom_faktura'].'</td>
<td>'.$row['nom_dogovor'].'</td>
<td>'.$row['zabelejka'].'</td>

</tr>';

$prom= $row['id'];

}
echo'</tr>';
echo $prom;
//тУК СИ ИЗКАРВА НОМЕРА, ПОНЕЖЕ Е ЕДИНСТВЕН (НЕ МОЖЕ ДА ИМА ПОВЕЧЕ ОТ ЕДИН ЗАПИС С ЕДНАКВИ ДАННИ ЗА ТОВА НЕ ВЪРТЯ УАИЛ ЦИКЪЛ ДА СЪБИРА ВСИЧКИ АИДИТА*/

}
echo $prom;
if (isset($_POST['korekciq'])){

//Тук вече нямам достъп
echo $prom;
$sql= mysqli_query($connection, "UPDATE table1 set tel_nom='".$_POST['nom']."'where id='".$prom."'");
echo'<pre>'.print_r($sql,true).'<pre>';

if(!$sql){

echo'Не се ъпдеитва';
}
else{
echo 'ok';
}

}

Приемам и други предложения за взимане на аидито на някакъв селект и използването му при натискане бутон ъпдейт. Целта на кода е да провери някакъв номер, след като видим номера при натискане на бутон ъпдейт да се вземе идито и да се променят абонатните данни. Всичко си работи в кода просто не взима стойност от променливата.
 
Всичко си е точно ! .. казва ти че не е декларирана защото тя се явява локална променлива. ся щи дам един пример за да го разбереш ..

Ти имаш:
if( uslowie)
{
// true
$prom = 'nowa stoinost';
}

когато е така, тя извън тази проверка НЯМА никаква стойност.
Ако искаш да проработи .. трябва да я декларираш предварително и така ако мине проверката нали ще сложи $prom = $r['id'] и така ще запази новата стойност:
PHP:
$prom = "po podrazbirane";
if( uslowie )
{
 // true
   $prom=$r['id'];
}

// ako wsichko e OK  shti izkara ID-to ,
// inache shti iskara teksta w promenliwata ;)
echo $prom ;


:?: :?:
 
аз съм декларирал променливата още в началото на кода. Декларирах я и като глобална, но ефекта е същия.

$prom = "po podrazbirane";
if( uslowie ){
// true $prom=$r['id'];}
// ako wsichko e OK shti izkara ID-to ,
// inache shti iskara teksta w promenliwata
echo $prom ;
//И при моя код до тук работи
if(ako e natisnat buton korekciq){
echo $prom;--ето това не работи!!!! var_dump($prom) изкарва NULL
}


Ако игнорирам променливата целия код си работи и проблема е само в $prom. Вече не знам какво да правя, приемам всякакви идеии!
 
Пробвах резултата е същия. Интересното е че когато сложа var_dump($prom) на първия if си хваща идто като варчар, а при втория иф вече е интиджър НУЛЛ. Много го закъсах с таз променлива :(
 
Пробвайте и кажете дали става един прост код за тест.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<form method="POST">
Номер: <input type="text" name="nomer"/>
Фактура:<input type="text" name="faktura"/>
<input type="submit" name="serch" value="Тъси"/>
<input type="submit" name="update" value="корекция"/>
</form>
<?php
$con=mysqli_connect('localhost', 'Ivan2', '1234', 'komobur');
if(!$con){
echo'Грешка в конекшън стринга';

}

if(isset($_POST['serch'])){
$q=mysqli_query($con,'select id from table1 where id="'.$_POST['nomer'].'"');
// $zaqwka= mysqli_query($con,$q);
if(!$q){
echo 'Грешка в селекта';
}
else{
echo'Всочко е ок със селекта';
echo '<table border="1">
<tr><td>id</td></tr>';

while($row=$q->fetch_assoc()){
echo'<tr><td>'.$row['id'].'</td></tr>';
$prom=$row['id'];
}
// $prom=$row['id'];
echo $prom;

}
var_dump($prom);
echo $prom;
// Do tuk vzima stojnostta
}
if(isset($_POST['update']))
echo $prom;
var_dump($prom);
// tuk veche ne raboti
?>
</body>
</html>
 

Back
Горе