03. august 2005 - 19:02
Der er
24 kommentarer og 1 løsning
Hente fra 2 database.
Ok jeg skal have krydset 2 databaser og ville høre hvordan man nemmest gjorde det? $query = mysql_query("select * from Kodetip where idet = $id order by vote desc") or die(mysql_error()); print "<table width=200>"; while($row = mysql_fetch_array($query)){ echo "<tr><td>$row[ip]</td><td valign=right>$row[vote]</td></tr>"; } Her der henter jeg nogle iper, og hvad de har stemt, det jeg så gerne vil er at hvis en ip er ens med en ip i min bruger database, så skriver den navnet istedet for ipen. CREATE TABLE Kodetip ( id int(11) NOT NULL auto_increment, ip varchar(255) NOT NULL, idet int(9) NOT NULL, vote int(2) NOT NULL, PRIMARY KEY (id) ); også min bruger database: CREATE TABLE Kodbaroner ( id int(9) NOT NULL auto_increment, Navn varchar(50) NOT NULL, Pass varchar(50) NOT NULL, IP varchar(250) NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM;
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
03. august 2005 - 19:08
#1
Det er 2 tabeller ! Pas på det er forskel på Database og Tabel !
03. august 2005 - 19:10
#2
ja selvfølgelig, undskyld gik vidst lidt hurtigt :)
03. august 2005 - 20:15
#3
F.eks. sådan her: print "<table width=200>"; $SQL1 = "SELECT * FROM kodetip WHERE idet = " . $id . " ORDER BY vote DESC"; $query1 = mysql_query($SQL1) or die(mysql_error()); while ($row1 = mysql_fetch_assoc($query1)) { $navn = $row1["ip"]; $SQL2 = "SELECT navn FROM Kodbaroner WHERE ip='" . $navn . "'"; $query2 = mysql_query($SQL2) or die(mysql_error()); if (mysql_num_rows($query2) > 0) { $row2 = mysql_fetch_assoc($query2) $navn = $row2["navn"]; } echo "<tr><td>" . $navn . "</td><td valign=right>" . $row1["vote"] . "</td></tr>"; }
03. august 2005 - 20:19
#4
Parse error: parse error, unexpected T_VARIABLE in /hsphere/local/home/winta/baronerne.com/showkod.php on line 156 og jeg kan ikke lige finde det :S
03. august 2005 - 20:22
#5
mangler en ; $row2 = mysql_fetch_assoc($query2);
03. august 2005 - 20:30
#6
hjalp ikke :S Parse error: parse error, unexpected T_VARIABLE in /hsphere/local/home/winta/baronerne.com/showkod.php on line 157
03. august 2005 - 20:31
#7
Eller bare én query: // Connect til databasen først $sql = " SELECT ,t.vote ,t.ip ,b.navn FROM kodetips t LEFT OUTER JOIN kodbaroner b ON t.ip = b.ip "; $qh = mysql_query( $sql ) or die( mysql_error() ); while ( $row = mysql_fetch_assoc( $qh ) ) { echo "<div>"; if ( $row['navn'] == '' ) { echo $row['ip']; } else { echo $row['navn']; } echo " stemte " . $row['vote'] . "</div>"; } (Utestet, men bør virke)
03. august 2005 - 20:32
#8
fandt det :)
03. august 2005 - 20:34
#9
Du manglede en ; :) men nu virker det, bortset fra at den nogen gange ikke skriver en ip :S
03. august 2005 - 20:39
#10
Hvis den ikke skriver noget ip (og heller ikke noget navn) så er det fordi at: mysql_num_rows($query2) > 0 - er sand, men at: $navn = $row2["navn"]; - giver en tom værdi. Dette tyder på at der mangler noget data i din tabel.
03. august 2005 - 20:42
#11
Der mangler ikke noget data :S kan du ikke forklare lidt bedre hvad der er galt?
03. august 2005 - 20:49
#12
... jo ... der synes at mangle noget data. For hvordan skulle man ellers kunne udtrægge noget som giver en tom værdi? Nå, man så lad os da gå på debugging! Pårøv at udskrive SQL-kommandoerne før at de bliver udført: $SQL1 = "SELECT * FROM kodetip WHERE idet = " . $id . " ORDER BY vote DESC"; echo "DEBUG #1: " . $SQL1 . "<br>"; ... $SQL2 = "SELECT navn FROM Kodbaroner WHERE ip='" . $navn . "'"; echo "DEBUG # 2: " . $SQL2 . "<br>";
03. august 2005 - 20:51
#13
ok prøver jeg, kom til at tænke på, er det med vilje du har skrevet navn med småt over det hele? det er jo med stot i tabellen.
03. august 2005 - 20:52
#14
03. august 2005 - 20:56
#15
Prøv lige at poste din kode som den ser ud lige nu. Det med "navn" i stedet for "Navn" er bare en gammel vane - det kan godt være at din MySQL faktisk *skal* have det som "Navn".
03. august 2005 - 20:57
#16
tror jeg den skal, prøvede men kan ikek få den til det :S print "<table width=200>"; $SQL1 = "SELECT * FROM Kodetip WHERE idet = " . $id . " ORDER BY vote DESC"; echo "DEBUG #1: " . $SQL1 . "<br>"; $query1 = mysql_query($SQL1) or die(mysql_error()); while ($row1 = mysql_fetch_assoc($query1)) { $navn = $row1["ip"]; $SQL2 = "SELECT navn FROM Kodbaroner WHERE ip='" . $navn . "'"; echo "DEBUG # 2: " . $SQL2 . "<br>"; $query2 = mysql_query($SQL2) or die(mysql_error()); $row2 = mysql_fetch_assoc($query2); if (mysql_num_rows($query2) > 0) { $row2 = mysql_fetch_assoc($query2); $navn = $row2["navn"]; } echo "<tr><td>" . $navn . "</td><td valign=right>" . $row1["vote"] . "</td></tr>"; } print "</table>";
03. august 2005 - 21:01
#17
Jamen, prøv da endeligt med: $SQL2 = "SELECT Navn FROM Kodbaroner WHERE ip='" . $navn . "'"; - og: $navn = $row2["Navn"]; - og se om det ikke gør forskellen.
03. august 2005 - 21:04
#18
btw er begge de ip'er der ikke bliver vidst nogen der står i tabellen med brugere :) når det er en ip der ikke findes i tabellen så skriver den ipen som den skal..
http://baronerne.com/showkod.php?mas=12
03. august 2005 - 21:04
#19
det hjalp ikke :(
03. august 2005 - 21:05
#20
ip i den anden tabel er foresten også IP, ved ikke omd et betyder ngoet :S
03. august 2005 - 21:08
#21
Nu kommer der da enten et ip eller et navn med i udskriften - det kan jeg da se.
03. august 2005 - 21:10
#22
Fandt ud af det, havde skrevet $row2 = mysql_fetch_assoc($query2); to steder hehe :D tusidn tak for det, for jeg et svar :D?
03. august 2005 - 21:12
#23
Svar :^) ... men jeg synes da også lige at du skulle kigge på 03/08-2005 20:31:11.
03. august 2005 - 21:25
#24
Kigge på hvad :S?
03. august 2005 - 21:32
#25
På det som coderdk postede "03/08-2005 20:31:11".
Vi tilbyder markedets bedste kurser inden for webudvikling