Berichten laten zien maar er komt maar een terug (database)

Status
Niet open voor verdere reacties.

gebruiker78

Gebruiker
Lid geworden
29 jun 2010
Berichten
428
Berichten allemaal mooi onder elkaar (dit is van die database nogsteeds)

hallo ik heb dit stukje code:
PHP:
</div>
<div id='ppm'>
<?php $query = mysql_query("SELECT users_id,ido,message FROM usersppm WHERE users_id='" . mysql_real_escape_string( $id ) . "'");
while($row = mysql_fetch_object($query)){
$users_id = $row->users_id;
$ido = $row->ido;
$message = $row->message;
}
$query2 = mysql_query("SELECT firstname,lastname,easyname FROM users WHERE id='" . mysql_real_escape_string( $ido ) . "'");
while($row = mysql_fetch_object($query2)){
$firstnameo = $row->firstname;
$lastnameo = $row->lastname;
$easyname = $row->easyname;
}
?>
<?php
$query3 = mysql_query("SELECT easyname,profilepic,profilen FROM userspp WHERE id='" . mysql_real_escape_string( $ido ) . "'");
if(mysql_num_rows($query3)){
while($row = mysql_fetch_assoc($query3)){ ?>
<a style="color: white;" href="profilepicture.php?n=<?php echo $row['easyname']; ?>"><img style='float: left;' src="<?php echo $row['profilepic']; ?>" alt="profile picture" height="100" width="100" title="<?php echo $row['profilen']; ?>"></img></a>
<?php } }
else{ ?>
<img style='float: left;' src="../images/noprofilepic.png" alt="profile picture" height="100" width="100" title="no profile picture"></img>
<?php } ?>
Name: <a href="profileothers.php?n=<?php echo $easyname; ?>"><?php echo "$firstnameo $lastnameo"; ?></a> <br />
<?php echo $message; ?> <br />
</div>

het is gelukt bij iets anders (ik gebruik dezelfde code) maar hier doet hij het niet.
css:
#ppm{
border-right: solid;
border-right-color: rgb(29,100,250);
border-width: 1px;
width: 500px;
float: left;
word-wrap: break-word;
overflow-x: auto;
}



en het ziet er zo uit (want het werkt ook wel alleen komt er maar 1 terug terwijl ik er veel meer wil onderelkaar)
http://imageshack.us/photo/my-images/824/testdasd.png/
 
Laatst bewerkt:
Bedoel je dat elke query maar een resultaat oplevert? Dat kan kloppen. In elke query vraag je bepaalde kolommen op van een bepaalde id. Het idee van een id (pun not intended) is dat deze uniek is. Als je de gegevens behorende bij een bepaalde id opvraagt krijg je altijd maar een resultaat.
 
oke bedankt,
maar bij de code die ik gebruik om vrienden te worden geeft hij ook veel vriendverzoeken aan (terwijl daar het id ook uniek is).

maar hoe los ik dit dan op? want ik wil dat je op een profiel een bericht kan plaatsen(users_id) en dan die allemaal laten zien (ido, message)
dus op de gebruikers pagina (alle users_id)
laat daar dan de (ido,message) zien.

want ik wil niet die blokkering van maar 1 users_id, dus hoe haal ik die eraf?
ik snap dat je geen primary key mag hebben wat dat moet uniek zijn, dus geen van beide is primary key dus daar kan het niet aan liggen
 
Je hebt geen primary key (wel een index hopelijk)? Zijn de ids wel uniek, anders klopt er iets niet in je database.
Ik zou het met een query ophalen. Dat wordt dan zoiets (SQL is niet mijn allersterkste punt):
PHP:
mysql_query("SELECT usersppm.message, users.firstname, users.lastname, users.easyname, userspp.easyname, userspp.profilepic, userspp.profilen WHERE users_id=" . mysql_real_escape_string( $id ) . " AND userspp.id=users.ido AND usersppm.id=usersppm.ido");
 
Hallo, ik reageer even snel om me ipod
Nee niet elke id uit die table is uniek want (zie het als krabbel, hyves). Een persoon kaan meerdere berichten hebben (users_id) van verschillende/zelfde personen (ido) met een message.

Index heb ik niet aangezien ik dat gedeelte nooit heb begrepen.

Ik zou vaanvond wel kijken of dat stukje php wel werkt

*edit

- ik snap nu wat indexen zijn maar klopt het als je maar weinig in je database hebt dan hij dan juist slomer word, alleen als er juist heel veel is dat hij dan sneller word?

- die code werkt niet echt.
 
Laatst bewerkt:
gezocht op internet en dit werkt (ik had snel een test aangemaakt)
PHP:
<?php
include("../mydabo.comSandbox/security/dbconnect.php");
$query = mysql_query("SELECT id,name FROM test WHERE id='1'");
while($row = mysql_fetch_array($query)){
   $data[] = $row;
   }
?>
<table><?php foreach ($data as $row): ?>
<tr>
<td><?php echo $row['id']?></td>
<td><?php echo $row['name']?>
</td><?php  endforeach ?></table>

maar in de echte code werkt het weer niet :(, of moet ik het dan persee in een tabel zetten?

*edit had de while helemaal tot onder moeten doen,
nu klopt alles (alleen staan de berichten nog gek maar dan moet ik misschien me css nakiijken:

<div id='ppm'>
<?php $query = mysql_query("SELECT usersid,ido,message FROM usersppm WHERE usersid='" . mysql_real_escape_string( $id ) . "'");
while($row1 = mysql_fetch_array($query)){
$data[] = $row1;
foreach ($data as $row1);
$usersid = $row1['usersid'];
$ido = $row1['ido'];
$message = $row1['message'];
$query2 = mysql_query("SELECT firstname,lastname,easyname FROM users WHERE id='" . mysql_real_escape_string( $ido ) . "'");
while($row2 = mysql_fetch_array($query2)){
$data[] = $row2;
foreach ($data as $row2);
$firstnameo = $row2['firstname'];
$lastnameo = $row2['lastname'];
$easyname = $row2['easyname'];
?>
<?php
$query3 = mysql_query("SELECT easyname,profilepic,profilen FROM userspp WHERE id='" . mysql_real_escape_string( $ido ) . "'");
if(mysql_num_rows($query3)){
while($row3 = mysql_fetch_array($query3)){
$data[] = $row3;
foreach ($data as $row3); ?>
<a style="color: white;" href="profilepicture.php?n=<?php echo $row3['easyname']; ?>"><img style='float: left; margin:0px 5px 0px 5px;' src="<?php echo $row3['profilepic']; ?>" alt="profile picture" height="100" width="100" title="<?php echo $row3['profilen']; ?>"></img></a>
<?php } }
else{ ?>
<img style='float: left;' src="../images/noprofilepic.png" alt="profile picture" height="100" width="100" title="no profile picture"></img>
<?php } ?>
Name: <a href="profileothers.php?n=<?php echo $easyname; ?>"><?php echo "$firstnameo $lastnameo"; ?></a><br />
<?php echo $message; ?><br /><br /><br /><br /><br />
<?php }
} ?>
</div>
 
Laatst bewerkt:
Je gebruik steeds de zelfde $row variable voor elke query.
dus in elke query word de $row op nieuw ingesteld.
Nummer de $row gelijk aan de query die je gebruik
$query => $row
$query2 => $row2
$query3 => $row3
enz.
 
ik heb die boven phobia geupdate en dat is de code die ik nu echt gebruik.
alleen komen zo de berichten niet mooi onder elkaar als iemand veel tekst heeft.
want als er 1 zin staat komt het mooi uit met 3 <br /> maar als iemand bijv 10 zinnen heeft dan komen er ook 3<br /> maar dat hoeft er dan maar 1 te zijn.
zie hier het probleem
hoe lost ik dit op? want ik wil dat ze net zoo mooi staan als die bovenste (3 of 2, weet even niet uit me hoofd welke goed stonden), want die daar onder staan weer te ver uitelkaar.


voor mensen die denken het probleem op te lossen door maar 1<br /> te gebruiken hebben het fout, aangezien het float: left; is komen de afbeeldingen dan naast elkaar te staan dus ik heb er zoiezo 3 nodig voor iemand met 1 zin 2 voor 2zinnen 1 voor 3 of meerdere zinnen.

dus is er misschien een optie count <br />? en hoe zou ik dat dan moeten gebruiken
 
Laatst bewerkt:
zet het in een span of div en laat er wat css oplos.
 
Phobia, bedankt dat je zoveel help!
maar met deze tip kan ik weinig, want zelf heb ik ook al heel veel geprobeerd maar ik krijg het echt niet mooi. want ik kan wel die afbeelding margin-bottom doen maar dan gaat de message er ook onder, ik kan wel de message margin-bottom doen maar dan is het eigenlijk hetzelfde als het nu is (wanneer de tekst groter is blijft er veel ruimte tussen)
 
als je een div nou een min-height meegeeft, en de hoogte maak je bv 3regels.
dan heeft elke tekst zijn eigen ruimte.
 
THNX!,
tja ben meer een php'er en snap weinig van css dus wist niet dat er een min-height bestond (maar zoiets wou ik ook)
 
ik geloof alleen dat nog niet alle browser het ondersteunen. Maar dat zou je kunnen googlen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan