mysqli проблем

kWo_2

Registered
Е писна ми! от 3 часа се мъча с този mysqli
Защо при select не ми извежда нищо до като при селект1 информацията си е К.. Този код в в удебеленият шрифт все едно го няма и не ми показва информацията от fetch .. Дано аз бъркам някъде или просто този mysqli е сложен. Цяла нощ си играя и ми писна направо.....
$select = $mysqli->query("SELECT * FROM `test`");
while ($row = $select->fetch_assoc()) {
$id = $row ['id'];
$user = $row [user'];

echo $id;

$select1->bind_param('i',$user);
$select1->execute();
$select1->bind_result($daw,$new);
$select1->fetch();
echo $daw;


$select2->bind_param('i',$id);
$select2->execute();
$select2->bind_result($tzr,$dew);
$select2->fetch();

echo $tzr;

}

Да не би да е нещо от самия mysqli?

Едит: Четох в нета, че този проблем не е само при мен. :? Дано има решение на него с някакъв клас
 
Няма ли някакъв начин да видиш готовата заявка преди да я изпълни? Не съм работил с mysqli обаче попринцип ако някоя заявка не работи както трябва най-лесно е да си принтнеш готовия вариант точно преди изпълнението и да установиш проблема.
 
Ако го направя мисля, че ще извикам prepared доста пъти колкото е цикъла, ако си мисля, че това имаш предвид де. btw имало класове за тази работа, но да видим дали ще се оправя :lol:
 
Преди да bind-ваш променливи, първо трябва да си извикал функцията preparе, в която вместо променливи, трябва да оставиш питанки(?), и след това за всяка питанка да извикаш функцията bind_param, толкова пъти, колкото питанки имаш и тези bind функции зареждат стойностите на всяка питанка. След това извикваш execute.
 
Е, ти имаш 2 различни заявки, което означава, че трябва да си извикал prepare 2 пъти, което е грешно.

Трябва да и е:

prepare
bind
bind
bind
execute

prepare
bind
bind
bind
execute

А не:

prepare
prepare

bind
bind
bind
execute

bind
bind
bind
execute
 
Хм.. за първи път се мъча с mysqli и ми е трудно да го разбера. Ето го целия код в момента и най-отгоре където са prepare. Ще може ли да наместиш както трябва да изглеждат, моля те. Този код ме измъчи по цял ден в ровене в нета да изход от проблема.
$select1= $mysqli->prepare("SELECT `id`,`user` FROM moo WHERE user='".$ID."' ");

//
$select2= $mysqli->prepare("SELECT `tzr`,`dew` FROM `mood_links` WHERE `das`=? ");
//


$select1 ->execute();
$select1 ->bind_result($id,$user);
while($select1 ->fetch()) {

echo $id;

$select2->bind_param('i',$id);
$select2->execute();
$select2->bind_result($tzr,$dew);
$select2->fetch();

echo $tzr;

}

В цикъл е и не става. Общо взето нямам понятие как е пварилно и силно се надявам да се реши този проблем :S
 
Обясни с думи какво искаш да направиш, защото този код го гледам от 15 минути и не мога да намеря никаква логика в него.
 
Значи имам цикъл, който е пак с препаре извикването и т.н
Но в този цикйл искам да изведа информация за резултата от главния цикъл и не знам как ще стане. В кода горе не ми извежда информацията в цикъла

while {
echo $id

//и тук искам да изведа отново с prepare информация за това ид от цикъла


//

}
 
PHP:
$id = $_GET['id'];
$das = $_GET['das'];
$dbh = new mysqli('localhost', 'root', '');
if (mysqli_connect_errno()) {
die(mysqli_connect_error());
}
$sth = $dbh->prepare('SELECT `id` FROM `moo` WHERE `user` = ?');
$sth->bind_param('i', $id);
$sth->execute();
$data = $sth->fetch_all(MYSQLI_ASSOC);
$sth->close();
$sth = $dbh->prepare('SELECT `tzr`, `dew` FROM `mood_links` WHERE `das` = ?');
foreach($data as $value) {
echo('id: '$value.'<br>');
$sth->bind_param('i', $value[id]);
$sth->execute();
$sth->bind_result($tzr, $dew); 
echo('tzr: '.$tzr.'<br>dew: '.$dew);
}
$sth->close();
$dbh->close();
 

Back
Горе